Python的等价或NPM的RubyGems(Python equivalent of npm or

2019-07-04 02:36发布

我一直在四处寻找能够与蟒蛇被使用的软件包管理器。 我想列出项目依赖在文件中。 例如红宝石使用Gemfile中,你可以使用捆绑安装。 我怎样才能在Python实现这一目标?

Answer 1:

pip工具正在成为Ruby的宝石相当于标准。 像distributepip使用的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

就这样。



文章来源: Python equivalent of npm or rubygems