为什么我的虚拟人找不到distutils.sysconfig?

2024-05-19 01:45:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开发了一个Python项目,它是用测试驱动开发构建的。我当然看到了它的价值,我期待着进一步利用它。在

我已经使用pyenv安装了所有必需的Python解释器(请参见^{})。运行tox -r,我在2.6中遇到了以下问题(我还有其他问题,但我可以解决这些问题):

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 20, in <module>
    import distutils.sysconfig
ImportError: No module named distutils.sysconfig

ERROR: InvocationError: /home/wxl/.pyenv/shims/python2.6 /usr/lib/python2.7/dist-packages/virtualenv.py --setuptools --python /home/wxl/.pyenv/shims/python2.6 py26 (see /home/wxl/dev/git/blogofobe/.tox/py26/log/py26-0.log)

显然这不是代码的问题,而是试图调用virtualenv。回溯似乎表明它与丢失的模块有关,但那些模块应该在标准库中,即使在2.6中也是如此。在

有趣的是,如果我运行python2.6并尝试import distutils.sysconfig,它将失败。另一方面,如果我使用pyenv shell 2.6.9切换到该版本并尝试相同的操作,则效果良好。在

我错过了什么?在

FWIW,我在Ubuntu 14.04上,并且:

^{pr2}$

Tags: pyimportpyenvtoxhomevirtualenvlibpackages
1条回答
网友
1楼 · 发布于 2024-05-19 01:45:12

您似乎在使用Debian提供的virtualenv和pyenv中的python。这无法正常工作,因为Debian已经修补了站点.py,distutils,sysconfig,可能还有您试图用来对已安装的python的文件布局做出某些假设的virtualenv。dist包是特定于Debian的python补丁的一个明确指示。在

这些假设违背了pyenv安装的标准python。解决方案是在pyenv python中安装virtualenv,例如:

/home/wxl/.pyenv/shims/pip-2.6 install virtualenv

如果没有pip垫片,请使用以下方法:

^{pr2}$

别忘了通过运行pyenv rehash来重新生成垫片

相关问题 更多 >

    热门问题