在Python或Linux中,有没有基本上指示系统“安装任何必要的东西”的东西?基本上,我发现为我工作的每个新脚本/系统/服务器安装Python包很烦人。每次我都会做一个sudo pip或apt-get或dnf。为什么不在脚本本身中自动执行该操作。只要出现“找不到包”错误,就将库名称传递给INSTALL语句。这个就在那里吗?PS:我知道docker的存在,但我说的是纯出于执行目的的Python/脚本级别或直接系统级别。
sudo pip
apt-get
dnf
s3fp2yjn1#
如何根据需要自动从python脚本安装所需的包?让我们假设您的Python脚本是example.py:
example.py
import os import time import sys import fnmatch import requests import urllib.request from bs4 import BeautifulSoup from multiprocessing.dummy import Pool as ThreadPool print('test')
您可以使用pipreqs根据Python脚本包含的import语句自动生成requirements.txt文件。要使用pipreqs,假设您位于example.py所在的目录中:
import
requirements.txt
pipreqs
pip install pipreqs pipreqs .
它将生成以下requirements.txt文件:
requests==2.23.0 beautifulsoup4==4.9.1
您可以使用以下命令进行安装:
pip install -r requirements.txt
lf3rwulv2#
我所知道的最好的方法是,创建一个requirements.txt文件,列出其中的所有包名称,并使用pip安装它
示例requirements.txt:
BeautifulSoup==3.2.0 Django==1.3 Fabric==1.2.0 Jinja2==2.5.5 PyYAML==3.09 Pygments==1.4 SQLAlchemy==0.7.1 South==0.7.3 amqplib==0.6.1 anyjson==0.3 ...
col17t5w3#
在新计算机上安装自定义项目时,可以使用setupTools自动安装依赖项。如果您想要做的只是安装几个PyPI包,那么需求文件工作得很好。Here是两者之间的一个很好的比较。从同一链接中可以看到,如果您的项目有两个依赖包A和B,则在setp.py文件中只需包含一行
PyPI
A
B
install_requires=[ 'A', 'B' ]
当然,setuptools可以做更多的事情。您可以包括外部库(比如C文件)、非PyPI依赖项等的设置。文档提供了有关安装依赖项的详细概述。还有一个非常好的tutorial,介绍了如何开始使用Python打包。在他们的示例中,典型的setup.py文件将如下所示。
setuptools
from setuptools import setup setup(name='funniest', version='0.1', description='The funniest joke in the world', url='http://github.com/storborg/funniest', author='Flying Circus', author_email='flyingcircus@example.com', license='MIT', packages=['funniest'], install_requires=[ 'markdown', ], zip_safe=False)
总之,开始使用setuptools是如此简单。这个包可以非常容易地将代码迁移到一台新机器上。
goucqfw64#
mv requirements.txt requirements.txt.orig pipreqs --force ./
和CAT要求.txt
Keras==2.2.4 scipy==1.3.0 numba==0.44.1 imgaug==0.2.9 opencv_python==4.1.0.25
但是,有些模块需要二进制编译(您没有库),有些模块可以由系统包管理器以不同的名称安装。
vof42yt15#
我真的不太确定是否需要自动安装,但如果您停止使用requirements s.txt,有三种方法:1.当我们需要部署时,在开发后生成Requirements s.txt。它由pip freeze > requirements.txt或pipreqs执行,以减少混乱的结果。1.每次安装后,手动将每个模块添加到Requirements s.txt中。1.安装管理器,该管理器将为我们处理Requirements s.txt更新。关于堆栈溢出,1-st选项有很多答案,2-d选项是不言而喻的,所以我想描述3-d方法。有一个名为to-requirements s.txt的库。要安装它,请键入以下命令:
pip freeze > requirements.txt
pip install to-requirements.txt # Pip install to requirements.txt
如果你一次读完整个命令,你就会看到它的作用。安装后,您应该对其进行设置。运行:
requirements-txt setup
它覆盖pip脚本,以便每个pip install或pip uninstall使用所需的包版本自动更新项目的requirements.txt文件。覆盖是安全的,因此在卸载此程序包后,pip将正常运行。你还可以定制它的工作方式。例如,全局禁用它并仅为所需目录激活它,仅为Git存储库激活它,或允许/不允许创建Requirements.txt文件(如果该文件不存在)。
pip install
pip uninstall
链接:
1.文档-https://requirements-txt.readthedocs.io/en/latest/1.gihub-https://github.com/VoIlAlex/requirements-txt1.PYPI-https://pypi.org/project/to-requirements.txt/
5条答案
按热度按时间s3fp2yjn1#
如何根据需要自动从python脚本安装所需的包?
让我们假设您的Python脚本是
example.py
:您可以使用pipreqs根据Python脚本包含的
import
语句自动生成requirements.txt
文件。要使用pipreqs
,假设您位于example.py
所在的目录中:它将生成以下
requirements.txt
文件:您可以使用以下命令进行安装:
lf3rwulv2#
我所知道的最好的方法是,创建一个
requirements.txt
文件,列出其中的所有包名称,并使用pip安装它示例
requirements.txt
:col17t5w3#
在新计算机上安装自定义项目时,可以使用setupTools自动安装依赖项。如果您想要做的只是安装几个
PyPI
包,那么需求文件工作得很好。Here是两者之间的一个很好的比较。从同一链接中可以看到,如果您的项目有两个依赖包
A
和B
,则在setp.py文件中只需包含一行当然,
setuptools
可以做更多的事情。您可以包括外部库(比如C文件)、非PyPI依赖项等的设置。文档提供了有关安装依赖项的详细概述。还有一个非常好的tutorial,介绍了如何开始使用Python打包。在他们的示例中,典型的setup.py文件将如下所示。
总之,开始使用
setuptools
是如此简单。这个包可以非常容易地将代码迁移到一台新机器上。goucqfw64#
PIP3安装pipreqs
PIP3安装-U--用户pipreqs
和
CAT要求.txt
但是,有些模块需要二进制编译(您没有库),有些模块可以由系统包管理器以不同的名称安装。
vof42yt15#
自动要求.txt更新方式
我真的不太确定是否需要自动安装,但如果您停止使用requirements s.txt,有三种方法:
1.当我们需要部署时,在开发后生成Requirements s.txt。它由
pip freeze > requirements.txt
或pipreqs
执行,以减少混乱的结果。1.每次安装后,手动将每个模块添加到Requirements s.txt中。
1.安装管理器,该管理器将为我们处理Requirements s.txt更新。
关于堆栈溢出,1-st选项有很多答案,2-d选项是不言而喻的,所以我想描述3-d方法。有一个名为to-requirements s.txt的库。要安装它,请键入以下命令:
如果你一次读完整个命令,你就会看到它的作用。安装后,您应该对其进行设置。运行:
它覆盖pip脚本,以便每个
pip install
或pip uninstall
使用所需的包版本自动更新项目的requirements.txt文件。覆盖是安全的,因此在卸载此程序包后,pip将正常运行。你还可以定制它的工作方式。例如,全局禁用它并仅为所需目录激活它,仅为Git存储库激活它,或允许/不允许创建Requirements.txt文件(如果该文件不存在)。
链接:
1.文档-https://requirements-txt.readthedocs.io/en/latest/
1.gihub-https://github.com/VoIlAlex/requirements-txt
1.PYPI-https://pypi.org/project/to-requirements.txt/