首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我的项目和pipenv使用的python解释器的耦合

我的项目和pipenv使用的python解释器的耦合
EN

Stack Overflow用户
提问于 2018-04-09 16:37:07
回答 1查看 219关注 0票数 6

安装my requirements失败:

代码语言:javascript
复制
» pipenv --python 3.6.4 install
Creating a virtualenv for this project…
Using /home/myuser/.pyenv/versions/3.6.4/bin/python3.6m to create virtualenv…
⠋Running virtualenv with interpreter /home/myuser/.pyenv/versions/3.6.4/bin/python3.6m
Using base prefix '/home/myuser/.pyenv/versions/3.6.4'
New python executable in /home/myuser/.local/share/virtualenvs/svc-J_VF07t3/bin/python3.6m
Also creating executable in /home/myuser/.local/share/virtualenvs/svc-J_VF07t3/bin/python
Please make sure you remove any previous custom paths from your /home/myuser/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/myuser/.local/share/virtualenvs/svc-J_VF07t3
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
n2.7/site-packages/pipenv/resolver.py", line 11, in <module>
    import pipenv.utils
  File "/home/myuser/.local/lib/python2.7/site-packages/pipenv/../pipenv/__init__.py", line 17, in <module>
    from .cli import cli
  File "/home/myuser/.local/lib/python2.7/site-packages/pipenv/../pipenv/cli.py", line 10, in <module>
    import delegator
  File "/home/myuser/.local/lib/python2.7/site-packages/pipenv/vendor/delegator.py", line 8, in <module>
    from pexpect.popen_spawn import PopenSpawn
  File "/home/myuser/.local/lib/python2.7/site-packages/pipenv/vendor/pexpect/popen_spawn.py", line 14, in <module>
    from Queue import Queue, Empty  # Python 2
ModuleNotFoundError: No module named 'Queue'

/home/myuser/.local/lib/python2.7/site-packages/pipenv/utils.py:1147: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/tmp/pipenv-cLTIqh-requirements'>
  warnings.warn(warn_message, ResourceWarning)

为什么是Python 2.7?让我们检查一下virtualenv中使用的python版本:

代码语言:javascript
复制
» pipenv shell
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /home/myuser/.local/share/virtualenvs/svc-J_VF07t3/bin/activate
» . /home/myuser/.local/share/virtualenvs/svc-J_VF07t3/bin/activate
» python --version
Python 3.6.4

对,是这样!那么pipenv本身呢:

代码语言:javascript
复制
» which pipenv
/home/myuser/.local/bin/pipenv

所以问题似乎在于,虽然我的virtualenv使用的是Python 3,但pipenv本身使用的是Python 2 ( system Python)。pipenv已安装为recommended,使用系统范围的python解释器:

代码语言:javascript
复制
pip install --user pipenv

并且确实安装了它,并找到了:

代码语言:javascript
复制
» which pipenv
/home/myuser/.local/bin/pipenv

» pipenv --version
pipenv, version 11.1.3

根据我的项目将要使用的pipenv解释器来强制重新安装python是没有任何意义的。

为什么pipenv在virtualenv中安装软件包时使用系统python,而不是使用该virtualenv的python?如何将pipenv使用的python解释器和我的项目使用的python解释器解耦?

EN

回答 1

Stack Overflow用户

发布于 2018-07-20 05:02:02

我也遇到过类似的问题。当摆弄pipenv和Python3的一个新的次要版本时,它就开始发生了。尽管这听起来可能没有什么帮助,但解决方案是打开一个新的shell (而不是源化shell),然后调用pipenv shell,就像我的python manage.py命令一样。

fwiw我的错误是在字符串插值'%d' % foo上始终抱怨Python2.7,但这在Python3中有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49728727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档