为什么Pipenv在安装软件包时没有使用正确的Python版本?

7hiiyaii  于 2023-05-05  发布在  Python
关注(0)|答案(2)|浏览(155)

bounty还有3天到期。回答此问题可获得+50声望奖励。d84_n1nj4正在寻找一个答案从一个有信誉的来源

我已经阅读了各种其他类似的问题,没有找到一个符合我的问题。如果我漏掉了一个,请随时重新引导我。
我的系统(Arch Linux)上安装了Python 3.10.7,我需要处理一个使用Python 3.6.9的旧项目。
我知道这个项目与3.6.9一起工作,并且它的依赖项被正确安装,因为我可以看到它在我输入检查Python版本的docker容器中运行良好。
因为我已经尝试了几次,所以我确保重新开始一个新的环境:
pipenv --rm
rm Pipfile
那我就做了
pipenv --python 3.6.9
Python 3.6.9和Pyenv一起成功安装,虚拟环境也是如此。
如果我做pipenv shell,那么python --version就是Python 3.6.9。然后我Ctrl-D离开环境。
然后我执行pipenv install -r requirements.txt,它崩溃并返回以下追溯:

Requirements file provided! Importing into Pipfile...
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✘ Locking Failed! 

    Traceback (most recent call last):
      File "/usr/lib/python3.10/site-packages/pipenv/resolver.py", line 867, in <module>
        main()
      File "/usr/lib/python3.10/site-packages/pipenv/resolver.py", line 844, in main
        from pipenv.vendor.vistir.misc import replace_with_text_stream
      File "/usr/lib/python3.10/site-packages/pipenv/__init__.py", line 58, in <module>
        from .cli import cli
      File "/usr/lib/python3.10/site-packages/pipenv/cli/__init__.py", line 1, in <module>
        from .command import cli  # noqa
      File "/usr/lib/python3.10/site-packages/pipenv/cli/command.py", line 7, in <module>
        from pipenv.cli.options import (
      File "/usr/lib/python3.10/site-packages/pipenv/cli/options.py", line 3, in <module>
        from pipenv.project import Project
      File "/usr/lib/python3.10/site-packages/pipenv/project.py", line 2
        from __future__ import annotations
        ^
    SyntaxError: future feature annotations is not defined

如果我错了请纠正我,我知道这里的安装使用的是Python 3.10,而代码预计将在3.6中运行,其中注解是未来的。
我做错了什么?

wljmcqd8

wljmcqd81#

pipenv在2022.4.20上放弃了Python 3.6的支持。如果你使用的是旧版本的pipenv,请检查你的docker容器上的pipenv版本。

py49o6xq

py49o6xq2#

最好使用python 3.6的相应管道版本,并将其添加到requirements.txt文件中。
pipenv==2018.11.26
你可以参考这份文件和这份

相关问题