Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在Python中自动安装所需的软件包?_Python_Python 3.x - Fatal编程技术网

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

有没有办法在Python中自动安装所需的软件包?,python,python-3.x,Python,Python 3.x,在Node.js中,我们为一个项目创建一个package.json文件,其中列出了所有依赖项,以便NPM可以自动安装它们 有没有一种与Python相同的方法来实现这一点?您可以通过 conda install --file requirements.txt 您可以使用pip freeze>requirements.txt生成依赖项列表,并使用pip install-r requirements.txt安装所有依赖项。节点具有npm类似的python具有pip pip是一个软件包管理系统,用于安

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


有没有一种与Python相同的方法来实现这一点?

您可以通过

conda install --file requirements.txt

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

节点具有
npm
类似的python具有pip

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

所以首先需要安装pip

sudo apt-get install python-pip
您必须将需求保存在项目文件夹的
requirements.txt
中,就像
nodejs
中的
package.json
一样

例如:

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

pip install -r requirements.txt

如果你正在创建一个独立的库,考虑使用和定义一个<代码>安装程序.Py < /C> >一个<代码>安装程序,要求库的依赖关系< <代码> >字段。例如:

from setuptools import setup

setup(
    name='example.package',
    install_requires=[
        'setuptools',
        'requests>=3.0.0',
        # other requirements
    ],
    # ... and other attributes
)
如果您试图生成一个开发/构建环境,那么一个
requirements.txt
就足够了,但是通过标准的依赖关系解析,其他Python包无法使用它

另外,有关如何使用软件包的更全面的信息,请参考,例如(包括pip、virtualenv的使用,这对设置开发环境很有用),这些软件包可以分发(包括在项目的
setup.py
中放置的内容).

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

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


通常来说,您可能使用的几乎所有软件包都发布在PyPI存储库中,您只需执行
pip安装
,它就能解决其余的问题。

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

  • 使用
    pip install pipreqs
    ,允许运行程序文件夹--/的
    pipreqs/--目录,并在程序文件夹中为程序生成requirements.txt文件,其中列出了所有程序包依赖项
  • 将包含python包下载位置的包依赖项的文件夹(例如..\python\Python38-32\Lib\site包)直接复制/粘贴到程序的文件夹中
  • 运行
    pip uninstall-r requirements.txt
    并运行该程序,以确保它在没有安装依赖项的情况下仍能工作

  • 无论您选择使用哪种安装方法(conda、freeze、setup.py),都要使用虚拟环境。这将使您的安装寿命大大延长。@SteveJ我正在使用PyCharms虚拟环境。但问题是Python调试器似乎因为与PyQt有关而崩溃。唯一的选择似乎是在没有PyCharm的情况下工作,这意味着我要么使用另一个IDE/调试器,要么切换到使用终端并全局安装所有依赖项。。。还是我不明白?@KaizerSozay可能对Pycharm中的PyQt崩溃问题有用。@Kaizer;我建议两件事。1) 用PyCharm归档一个bug——它们真的在上面。2) 因为PyCharm为您创建了一个虚拟环境,所以您只需在终端的虚拟环境中运行它。你不需要重新安装任何东西。@KaizerSozay;再加上我之前提到的,如果PyCharm已经创建了一个虚拟环境,那么该虚拟环境已经安装了所有需要的软件包。您所要做的就是从终端激活虚拟环境。诀窍在于现在有两种类型的虚拟环境1)virtualenv/VirtualEnvrapper,2)pyvenv(现在只是venv)。阅读有关如何从终端激活环境的文档。有一种情况是“修井”。另一种是“source-venv/bin/activate”(Linux),python有自己的包安装程序,名为
    pip
    Node.js。同样,运行
    npm-install--save
    将其保存在
    package.json
    中。或者手动生成
    package.json
    文件也可以。我建议使用
    pipenv
    来管理python依赖项。请参阅npm安装--安装依赖项后保存。您在初始阶段不知道如何安装,而且什么都不知道。因此,
    pip freeze
    只列出默认包,如
    six
    wsgi
    ,如果它是django,那就是它。我在Pycharm中使用一个虚拟环境。是否有办法导出我通过pycharm安装的软件包?您可以从设置->项目解释器查看。如果要导出,请打开终端,然后按照@LuCima answer,pip freeze>requirements.txt进行操作
    from setuptools import setup
    
    setup(
        name='example.package',
        install_requires=[
            'setuptools',
            'requests>=3.0.0',
            # other requirements
        ],
        # ... and other attributes
    )