代码之家  ›  专栏  ›  技术社区  ›  elbillaf

pip安装无法识别以前安装的软件包

  •  0
  • elbillaf  · 技术社区  · 3 年前

    我试图为一个项目创建一个标准的虚拟环境。我有一个工作虚拟环境,其中包含所有必需的模块。我有一个批处理文件来安装所需的东西。

    批处理代码的一部分看起来像这样:

    pip install --no-index "altgraph-0.17-py2.py3-none-any.whl"
    pip install --no-index "pefile-2017.8.1.zip"
    pip install --no-index "pywin32_ctypes-0.2.0-py2.py3-none-any.whl"
    
    pip install --no-index "setuptools-40.8.0-py2.py3-none-any.whl "
    pip install --no-index "PyInstaller-3.6.tar.gz"
    

    当我运行此程序时,我收到以下错误:

    (py368) C:\Users\kgreen\Source\Repos\MapTools\py368_modules>pip install --no-index "PyInstaller-3.6.tar.gz"
    Processing c:\users\kgreen\source\repos\maptools\py368_modules\pyinstaller-3.6.tar.gz
      Installing build dependencies ... error
      ERROR: Command errored out with exit status 1:
       command: 'c:\users\kgreen\source\repos\maptools\py368\scripts\python.exe' 'c:\users\kgreen\source\repos\maptools\py368\lib\site-packages\pip' install --ignore-installed --no-user --prefix 'C:\Users\kgreen\AppData\Local\Temp\pip-build-env-fcj_djos\overlay' --no-warn-script-location --no-binary :none: --only-binary :none: --no-index -- 'setuptools>=40.8.0' wheel
           cwd: None
      Complete output (2 lines):
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0
      ERROR: No matching distribution found for setuptools>=40.8.0
      ----------------------------------------
    ERROR: Command errored out with exit status 1: 'c:\users\kgreen\source\repos\maptools\py368\scripts\python.exe' 'c:\users\kgreen\source\repos\maptools\py368\lib\site-packages\pip' install --ignore-installed --no-user --prefix 'C:\Users\kgreen\AppData\Local\Temp\pip-build-env-fcj_djos\overlay' --no-warn-script-location --no-binary :none: --only-binary :none: --no-index -- 'setuptools>=40.8.0' wheel Check the logs for full command output.
    

    但这正是我安装的setuptools的版本!我之前尝试过setuptools-41.4.0,当它不起作用时,我试图回到错误消息中提到的确切版本。

    注意:稍后尝试安装西班牙冷汤时,我也会遇到同样的错误。。。无法识别setuptools>=40.8.0已安装。

    注意:当我做pip列表时,我看到确实安装了正确版本的setuptools。

    (编辑)注意:我忘了提到这也必须适用于未连接到互联网的系统,因此解决方案必须指向轮文件或压缩包,但不能直接指向PyPi。

    我还尝试在事后手动键入安装,认为可能需要延迟才能完成对之前安装的setuptools的一些处理。(也许很傻,但我绝望了。) 为什么看不到这个版本?我该怎么解决这个问题?

    0 回复  |  直到 3 年前
        1
  •  2
  •   gch    3 年前

    我在尝试安装时也遇到了同样的问题 atlassian-python-api . 如果尝试脱机安装软件包(使用 --no-index 旗)。 我在PyInstaller github上找到了解决方案: https://github.com/pyinstaller/pyinstaller/issues/4557#issuecomment-569450071 (“PEP517建议包构建应该在隔离的环境中完成,pip通过使用--ignore installed实现了这一点”)

    所以,只需添加 --no-build-isolation 标记为pip命令:

    pip install --no-index --find-links "PyInstaller-3.6.tar.gz" --no-build-isolation
    

    也许你还需要安装 wheel 包裹。请点击此处查看详细信息: Why is python setup.py saying invalid command 'bdist_wheel' on Travis CI?

        2
  •  1
  •   J.C.    3 年前

    你能试试“查找链接”吗?

    pip install --no-index --find-links "PyInstaller-3.6.tar.gz"
    

    这意味着安装本地软件包,并从pypi安装其他所需的软件包。如果你 pip安装“setuptools-40.8.0”成功,你的错。但如果忽略安装setuptools,可能会导致一些软件包损坏。