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



我对 Python 及其所有与"部署"相关的工具有点陌生:pip3setuptoolsvirtualenvwheel等,所以我希望我的问题有意义......反正是这样的:

我有一个 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"])

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

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

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

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

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

--> 直到几天前,setup.py文件中列出的所有第三方软件包(及其"依赖项子包"(都使用其whl文件下载(然后安装(,即 - 例如:paramiko软件包安装的输出将是:

阅读 https://pypi.org/simple/paramiko/正在下载 https://files.pythonhosted.org/packages/4b/80/74dace9e48b0ef923633dfb5e48798f58a168e4734bca8ecfaf839ba051a/paramiko-2.6.0-py2.py3-none-any.whl#sha256=99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf 最佳匹配:帕拉米科 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 机器上的任何设置(,对于setup.py尝试安装的每个包,它"通过"tar.gz文件(即源?(安装了"并且不使用whl文件-->这需要更长的时间,因为对于某些包,它实际上构建(符合(所有"底层 C 库"。这种"更改"使我的"安装过程"执行时间从~20秒增加到~4分钟。

我的问题是:

a( 我如何解决这种情况 - 最好在不更改部署过程的情况下,即 - 仍然执行上述 3 个步骤,考虑到可能会稍微修改一个或多个命令(创建虚拟环境和/或setup.py所需的一些附加参数?

b( 如果我别无选择,那么使用pip3 install -r requirement.txt ..."程序"也会很好,如果它也会在适用的情况下使用whl文件。

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

笔记: 我分别在Ubuntu 16.04Ubuntu 18.04机器上测试了它,分别带有Python 3.5Python 3.6

谢谢!!

对于项目PyNaCl的当前版本,似乎没有与您的环境(操作系统,Python解释器版本,CPU位(兼容的轮子。如果您有最新版本的pip,则命令path/to/venv/bin/python -m pip debug --verbose应列出与您的环境兼容的标签,以便您可以与PyPI上可用的子列表进行比较。

最新更新