在下载和安装python3软件包时,如何告诉pip3比tar.gz更喜欢下载(和安装)轮文件

我对Python及其所有与“部署”相关的工具有些陌生,这些工具包括:pip3setuptoolsvirtualenv wheel等,所以我希望我的问题会有道理...反正是这样的:

我有一个Python3项目,该项目使用virtualenv在虚拟环境中进行“托管”,其中所有项目的依赖项都“列出”在项目的setup.py文件中。 setup.py文件的内容如下:

setup(name="MyProjectName",version="0.1",description="Some description",url="someURL",author="My Name",author_email="someemail",license="MIT",packages=find_packages(),include_package_data=True,install_requires=["robotframework","paramiko"])

如您所见,项目使用(明确)的唯一第三方软件包是robotframeworkparamiko

现在,当我部署项目时,我将按照以下顺序执行以下操作:

  1. 使用以下命令创建虚拟环境: virtualenv -p python3 virtualEnvFolderName

  2. 像这样切换“进入”虚拟环境(我正在将其部署在Linux机器上): source virtualEnvFolderName/bin/activate

  3. 使用setup.py参数运行install脚本以“自动”使用以下命令安装项目的所有依赖项: python3 setup.py install

->直到几天前,setup.py文件中列出的所有第3方软件包(及其“依赖项子软件包”)都使用{{1}下载并安装了) }文件,即-例如:whl软件包安装的输出为:

  

阅读https://pypi.org/simple/paramiko/   正在下载https://files.pythonhosted.org/packages/4b/80/74dace9e48b0ef923633dfb5e48798f58a168e4734bca8ecfaf839ba051a/paramiko-2.6.0-py2.py3-none-any.whl#sha256=99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf   最佳搭配:paramiko 2.6.0   处理paramiko-2.6.0-py2.py3-none-any.whl   将paramiko-2.6.0-py2.py3-none-any.whl安装到

->这样,安装速度非常快(每个软件包约1-3秒)。

今天,当我在同一台机器上执行相同的过程时(我很确定我没有更改Ubuntu 16.04机器上的任何设置),对于paramiko尝试安装的每个软件包,它都已安装使用setup.py文件“>”通过tar.gz文件(即源?)和->花费更长时间,因为对于某些实际构建的软件包(符合)的所有“基础C库”。此“更改”使我的“安装过程”的执行时间从〜20秒增加到〜4分钟。

我的问题是:

a)如何解决这种情况-最好更改部署过程,即-仍然执行上述3个步骤,并考虑到其中一个或多个命令可能会稍微修改(创建虚拟环境和/或whl需要一些其他参数)。

b)如果没有其他选择,那么使用setup.py“过程”也将是一件好事,只要适用,它也会使用pip3 install -r requirement.txt ...文件。

c)如果我需要将虚拟环境“生成器”“切换”到whl,就可以了(实际上是首选,以防它在“相同”的持续时间内部署项目)。

注意: 我分别在venvUbuntu 16.04的{​​{1}}和Ubuntu 18.04机器上进行了测试。

谢谢!

rrrttt1984 回答:在下载和安装python3软件包时,如何告诉pip3比tar.gz更喜欢下载(和安装)轮文件

current version of the project PyNaCl似乎与您的环境(操作系统,python解释器版本,CPU位数)不兼容的 wheel 。如果您使用的是最新版本的 pip ,则命令path/to/venv/bin/python -m pip debug --verbose应列出与您的环境兼容的 tags ,以便您可以与以下列表进行比较: PyPI 上的 wheels

本文链接:https://www.f2er.com/3041535.html

大家都在问