写给前端的Python依赖管理指北
概述
在Python的项目中,我们可以通过pip来安装依赖包,但是不像npm install,pip默认安装的依赖包会挂在全局上,不利于项目工程协作。
这时候需要一款类似npm的工具记录我们的项目依赖Pipenv。
安装Pipenv
我们通过pip安装Pipenv:
$ pip install pipenv
安装之后,我们开始使用它来创建本地项目,为方便大家理解,将npm与Pipenv的使用方式进行对比。
创建本地项目
Nodejs
$ npm init --yes
不同于Nodejs的npm,Python的Pipenv初始化项目需要经过两步:
创建虚拟环境
激活虚拟环境
Python
$ pipenv install
$ pipenv shell
这时候Python会针对这个项目创建一个虚拟环境。项目下会出现一个文件 Pipfile,对应npm的 package.json 用于记录项目依赖信息。
安装依赖包
当我们把自己的项目提交到git上,别人拉下工程后,就需要安装该工程的所有依赖:
Nodejs
$ npm install
Python
$ pipenv install
当我们需要往项目添加新的依赖包,并记录到工程里:
Nodejs
$ npm install xxx --save
Python
$ pipenv install xxx
安装到开发环境:
Nodejs
$ npm install xxx --save-dev
Python
$ pipenv install xxx --dev
最后
通过pipenv我们可以像npm管理Nodejs工程一样管理python工程,更多细节可以参考pipenv官网:https://pipenv.readthedocs.io/en/latest/
写给前端的Python依赖管理指北的更多相关文章
- Python 简单入门指北(二)
Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...
- Python 简单入门指北(一)
Python 简单入门指北(一) Python 是一门非常容易上手的语言,通过查阅资料和教程,也许一晚上就能写出一个简单的爬虫.但 Python 也是一门很难精通的语言,因为简洁的语法背后隐藏了许多黑 ...
- python 的正则表达式指北
正则表达式用来拆分字符串 >>> s = 'one1two2three3four4' >>> pattern = re.compile(r'\d+') >&g ...
- Python生成requirements.txt包依赖管理文件
requirements.txt是Python的依赖管理软件,和Java的POM一样. requirements.txt会生成使用了pip安装后的依赖包,在正常环境下会生成这个目录下的包/usr/lo ...
- python之项目依赖管理
生成所有依赖清单 requirements.txt 1. pipreqs 工具 安装) pip install pipreqs 执行生成依赖列表命令) pipreqs ./ 完善版本: pipreq ...
- python 包管理工具
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
- python包管理-distutils,setuptools,pip,virtualenv等介绍
python包管理-distutils,setuptools,pip,virtualenv等介绍 对于每个编程语言来说打包和发布开发包往往非常重要,而作为一个编程者能够快速容易的获得并应用这些由第三方 ...
- Python包管理工具和多版本环境管理
1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...
随机推荐
- 在nginx的http模块下面,一个server就可以看做一个站点,配置形式大概是这样的:
http { index index.php index.htm index.html; server { server_name www.site1.com; location / { # [... ...
- laravel 数据库 - 增删查改
//查询public function select(){ /** 数据表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
- powermock+mockito+testng 单元测试pom文件
0:Supported versions PowerMock version 1.7.0 and upper has experimental support of Mockito 2. A lot ...
- 关于er模型中的identifying relationship or non-identifying relationship
最近,主要负责项目管理和领域模型设计方面的工作,昨天在将UML类图转换为ER模型的时候,发现有identifying relationship or non-identifying relations ...
- Iris Classification on PyTorch
Iris Classification on PyTorch code # -*- coding:utf8 -*- from sklearn.datasets import load_iris fro ...
- (4运行例子)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
1.联通ColaB 2.运行最基础mnist例子,并且打印图表结果 # https://pypi.python.org/pypi/pydot#!apt-get -qq install -y gra ...
- Git pull的时候遇到问题
转载:https://www.jianshu.com/p/7b1c58e0a9ef 使用git从远程pull代码时报错: error: The following untracked working ...
- Python3 tkinter基础 Frame bind 鼠标移动事件 实时显示鼠标的位置
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- emmc和ssd的区别【转】
本文转载自:https://blog.csdn.net/hawk_lexiang/article/details/78228789 emmc和ssd eMMC和SSD主要是满足不同需求而发展出来的NA ...
- extjs使用笔记-21
yii是后台php框架 而yui是前端界面框架,是ajax框架 Extjs是建立在yui基础上的.不要搞混了. jquery的ready方法,是在文档已经加载完毕\图像完全显示后, 才载入执行的. 由 ...