我一直在四处寻找能够与蟒蛇被使用的软件包管理器。 我想列出项目依赖在文件中。 例如红宝石使用Gemfile中,你可以使用捆绑安装。 我怎样才能在Python实现这一目标?
Answer 1:
该pip
工具正在成为Ruby的宝石相当于标准。 像distribute
, pip
使用的PyPI解决和下载依赖包库(默认情况下)。 pip
可以安装一个文件,列出项目的依赖(叫做依赖requirements.txt
按照惯例):
pip install -r requirements.txt
使用PIP也可以“冻结”了Python路径上的电流包:
pip freeze > requirements.txt
当与所使用virtualenv
包,您可以可靠地创建项目的Python环境与项目的需要的依赖。
Answer 2:
Pipenv
(我知道这是一个老问题,它已经有任何人来这里寻找一个不同的答案像我这样的一个答案,但。)
我已经找到了一个很好的等价物NPM,这就是所谓的pipenv 。 它可以处理的virtualenv,并在同一时间 ,以便它更像NPM PIP要求 。
简单的用例
pip install pipenv
然后你可以用第三个版本的Python,以及制作,将充满你的项目需求和其他的东西一个pipfile一个新的virtualenv:
pipenv install --three
使用您创建的virtualenv:
pipenv shell
安装新的Python包:
pipenv install requests
运行你的.py文件是这样的:
pipenv run python somefile.py
你可以找到它的文档在这里 。
Answer 3:
Python使用pip
包管理。 所述pip install
命令有一个-r <file>
选项安装从指定的需求文件包。
安装命令:
pip install -r requirements.txt
例如requirements.txt
内容:
Foo >= 1.2
PickyThing <1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1
SomethingWhoseVersionIDontCareAbout
请参阅需求的文档的分析部的格式的完整描述: https://pip.pypa.io/en/stable/user_guide/#requirements-files
Answer 4:
这是我如何限制pip
的范围,目前该项目。 这感觉就像如果你从的NodeJS的到来相反npm
或PHP的composer
,你明确指定全球安装-g
或--global
。
如果你不已经virtualenv
安装,然后用全球的安装:
pip install virtualenv
每个Python项目都应该有自己virtualenv
安装。 这很容易设置一个,只是cd
到你的项目的根和:
python3 -m virtualenv env # creates env folder with everything you need
激活的virtualenv:
source env/bin/activate
现在,任何交互pip
被包含在项目中。
运行pip install package_name==version
为每个依赖。 它们安装在./env/lib/python3.x/site-packages/
当你想保存项目的依赖关系到一个文件,运行:
pip freeze > requirements.txt
你其实并不需要-l
或--local
如果您在激活特定项目的virtualenv(你应该)是。
现在,当你想要安装从你的依赖requirements.txt
,设置您的virtualenv,然后运行:
pip install -r requirements.txt
就这样。