在Node.js中,我们创建一个package.json文件来列出所有依赖项,以便NPM可以自动安装它们。在Python中是否有相应的方法?
Node有npm
,类似于Python拥有pip。
pip是一个用于安装和管理使用Python编写的软件包的包管理系统。
因此,您首先需要安装pip。
sudo apt-get install python-pip
在你的项目文件夹中,你需要像node.js中的package.json文件一样,在requirements.txt中保存你的依赖。
例如:
pip install package1
pip install package2
pip install package3
pip install -r requirements.txt
pip freeze > requirements.txt
生成依赖列表,然后使用pip install -r requirements.txt
安装所有依赖项。npm install --save
将其保留在package.json
中。或者如果您手动生成package.json
文件也可以。 - Hou Lupipenv
来管理你的 Python 依赖项。可以在这里查看相关文档:https://docs.pipenv.org/。 - Hou Lupip freeze
只会列出默认包,例如 six
和 wsgi
,如果是 Django 的话就只有这些。 - Mohideen bin Mohammedpip
在大多数情况下默认与Python一起提供。它是安装Python包最常用的工具。当作者发布Python包时,他们会包含项目元数据(例如setup.py
、setup.cfg
或pypoject.toml
文件),其中部分声明了包的依赖关系,以便像pip
这样的打包工具可以在安装包时解析这些依赖关系。一些项目还可能在源代码中包含一个或多个requirements.txt
文件,您可以使用pip install -r /path/to/requirements.txt
命令指示pip
收集所需的包。
通常来说,您可能使用的几乎所有包都发布在PyPI存储库中,您只需要执行pip install <package name>
命令,pip将解析所有所需的依赖项。
还有其他可用的工具,其中包括类似于nodejs lockfiles的锁文件功能。pipenv
是一种由PyPA推荐的安装软件包和管理依赖项的工具。它捆绑了与相关工具(如virtualenv、pipfile等)相似的功能。它还提供了类似于JavaScript世界中的工具(例如npm
、yarn
等)的相似特性。
您可以通过以下方式使用 conda
:
conda install --file requirements.txt
setuptools
,并定义一个包含 install_requires
字段的 setup.py
文件来指定该库所需的依赖项。示例:from setuptools import setup
setup(
name='example.package',
install_requires=[
'setuptools',
'requests>=3.0.0',
# other requirements
],
# ... and other attributes
)
requirements.txt
文件可能就足够了,但是这并不能通过标准依赖项解析向其他 Python 包提供。install_requires
vs. Requirement files
此外,请参考 Python 打包指南,以获取更全面的有关如何处理软件包的信息,例如安装软件包(介绍了 pip 和 virtualenv 的用法,这对于设置开发环境非常有用),生成可分发的软件包(介绍了在项目的 setup.py
中应该放置哪些内容)。pip install pipreqs
命令安装pipreqs,并运行pipreqs /--指向你的程序文件夹的目录--/
命令,生成一个名为requirements.txt的文件,该文件列出了你的程序所需的所有包依赖。pip uninstall -r requirements.txt
并运行程序以确保它在没有安装依赖项的情况下仍然可以正常工作。