繁体   English   中英

有没有办法在 Python 中自动安装所需的包?

[英]Is there a way to automatically install required packages in Python?

在 Node.js 中,我们为一个项目创建了一个 package.json 文件,其中列出了所有依赖项,以便 NPM 可以自动安装它们。

有没有一种等效的方法可以用 Python 做到这一点?

Node 有npm类似 python 有pip

pip 是一个包管理系统,用于安装和管理用 Python 编写的软件包。

所以首先你需要安装pip,

sudo apt-get install python-pip

您必须将您的要求保留在项目文件夹中的requirements.txt中,就像nodejs package.json nodejs

例如:

pip install package1
pip install package2
pip install package3

然后转到您的项目路径,然后执行以下操作:

pip install -r requirements.txt

您可以使用pip freeze > requirements.txt生成依赖项列表,并使用pip install -r requirements.txt安装所有依赖项。

在交付具有依赖项的程序时,我发现的最快和最好的方法是使用几个简单的步骤。

  1. 使用pip install pipreqs允许运行pipreqs /--directory to your program folder--/并在您的程序文件夹中为您的程序生成 requirements.txt 文件,该文件列出了所有包依赖项。
  2. 将包含包依赖项的文件夹复制/粘贴到你的程序的文件夹中,从你的 python 包下载到(例如..\\Python\\Python38-32\\Lib\\site-packages)。
  3. 运行pip uninstall -r requirements.txt并运行该程序以确保它在没有安装依赖项的情况下仍然有效。

你可以使用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与需求文件

另外,请参考Python 打包指南以获取有关如何使用包的更全面的信息集,例如包的安装(包括 pip 的使用,virtualenv 对设置开发环境很有用), 生成的包可以分发(包括在项目的setup.py放入的内容)。

pipenv现在是官方推荐的用于安装包和管理依赖项的打包工具。 它捆绑了相关工具(如 virtualenv、pipfile 等)中的强大功能。 它还为您提供了来自其他领域的最佳功能,例如npmyarn等。

不过,默认情况下pip可用于 Python。 它是用于安装 python 包的最常用工具。 当作者发布 Python 包时,他们会包含一个setup.py文件,该文件将pip定向到依赖项,以便它可以在您的环境中解析它们。 作者还可以包含一个或多个requirements.txt文件,您可以通过这些文件直接pip收集所需的包 IE pip install -r /path/to/requirements.txt

通常来说,你可能使用的几乎所有包都发布在 PyPI 存储库中,你只需要执行pip install <package name>并计算出其余的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM