如何解决如何使用 virtualenv 创建一个环境,其中包含 pyenv 安装的解释器?
我知道 -p
标志,但是每当我使用它来指定解释器时,生成的环境都不能使用 pip
。我想在同一个应用程序中使用 python 3.x 项目和 python 2.7 项目 - 据我所知,最好的方法是使用 pyenv
安装两个解释器并使用 { {1}} 在每个项目文件夹中,指定正确解释器的路径。这是我所做的:
virtualenv
这是 pyenv install 2.7.18
mkdir my_env
virtualenv -p ~/.pyenv/versions/2.7.18/bin/python my_env
source my_env/bin/activate
pip --version
(或任何涉及 pip --version
)的输出:
pip
同样,如果我使用 Traceback (most recent call last):
File "/home/imageproc/my_env/bin/pip",line 5,in <module>
from pip._internal.cli.main import main
File "/home/imageproc/my_env/lib/python2.7/site-packages/pip/_internal/cli/main.py",line 10,in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/home/imageproc/my_env/lib/python2.7/site-packages/pip/_internal/cli/autocompletion.py",line 9,in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/home/imageproc/my_env/lib/python2.7/site-packages/pip/_internal/cli/main_parser.py",line 7,in <module>
from pip._internal.cli import cmdoptions
File "/home/imageproc/my_env/lib/python2.7/site-packages/pip/_internal/cli/cmdoptions.py",line 24,in <module>
from pip._internal.exceptions import CommandError
File "/home/imageproc/my_env/lib/python2.7/site-packages/pip/_internal/exceptions.py",in <module>
from pip._vendor.six import iteritems
ImportError: No module named six
安装的 python 3.x 版本执行上述操作,
pyenv
似乎这个输出也可能是相关的,因为缺少一个模块:
Traceback (most recent call last):
File "/home/imageproc/env3810/bin/pip",in <module>
from pip._internal.cli.main import main
File "/home/imageproc/env3810/lib/python3.8/site-packages/pip/_internal/cli/main.py",in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/home/imageproc/env3810/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py",in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/home/imageproc/env3810/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py",in <module>
from pip._internal.cli import cmdoptions
File "/home/imageproc/env3810/lib/python3.8/site-packages/pip/_internal/cli/cmdoptions.py",in <module>
from pip._internal.exceptions import CommandError
File "/home/imageproc/env3810/lib/python3.8/site-packages/pip/_internal/exceptions.py",in <module>
from pip._vendor.six import iteritems
ModuleNotFoundError: No module named 'pip._vendor.six'
当然,当我像往常一样使用 $ python -c "import sys
> for i in sys.path:
> print(i)"
~/my_env
~/.pyenv/versions/2.7.18/lib/python27.zip
~/.pyenv/versions/2.7.18/lib/python2.7
~/.pyenv/versions/2.7.18/lib/python2.7/plat-linux2
~/.pyenv/versions/2.7.18/lib/python2.7/lib-tk
~/.pyenv/versions/2.7.18/lib/python2.7/lib-old
~/.pyenv/versions/2.7.18/lib/python2.7/lib-dynload
~/my_env/lib/python2.7/site-packages
时,Pip 工作得很好,例如
virtualenv
有了这个工作,路径是
$ which python
/usr/bin/python
$ mkdir sys_env
$ virtualenv sys_env
$ source sys_env/bin/activate
$ pip --version
pip 20.0.2 from ~/sys_env/lib/python3.8/site-packages/pip (python 3.8)
我不太清楚自己在做什么,无法找到安装了 $ python -c "import sys
> for i in sys.path:
> print(i)"
~/sys_env
/usr/lib/python38.zip
/usr/lib/python3.8
/usr/lib/python3.8/lib-dynload
~/sys_env/lib/python3.8/site-packages
的 python 缺少系统 python 使用的路径的哪一部分,或者找出缺少的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。