在 virtualenv 中找不到 Python 模块
Posted
技术标签:
【中文标题】在 virtualenv 中找不到 Python 模块【英文标题】:Python module not found in virtualenv 【发布时间】:2015-11-07 09:48:14 【问题描述】:我尝试安装 python 模块:
virtualenv .
source bin/activate
pip install utmp
好像安装好了:
(wtmp)chris@chris-nb:~/computer/wtmp$ find -iname utmp
./bin/utmp
./lib/python2.7/site-packages/utmp
但是 Python 说没有找到:
(wtmp)chris@chris-nb:~/computer/wtmp$ ./wtmp.py
Traceback (most recent call last):
File "./wtmp.py", line 3, in <module>
import utmp
ImportError: No module named utmp
这是模块问题吗?我做错什么了吗?
如果重要的话,操作系统是 Ubuntu。
这是重新安装日志:
(wtmp)chris@chris-nb:~/computer/wtmp$ pip install --upgrade --no-deps --force-reinstall utmp
Downloading/unpacking utmp
Downloading utmp-0.4.tar.gz
Running setup.py (path:/home/chris/computer/wtmp/build/utmp/setup.py) egg_info for package utmp
zip_safe flag not set; analyzing archive contents...
flake8.reporter: module references __file__
flake8.tests._test_warnings: module references __file__
flake8.tests.test_integration: module references __file__
Installed /home/chris/computer/wtmp/build/utmp/flake8-2.4.1-py2.7.egg
Searching for six
Reading https://pypi.python.org/simple/six/
Best match: six 1.9.0
Downloading https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz#md5=476881ef4012262dfc8adc645ee786c4
Processing six-1.9.0.tar.gz
Writing /tmp/easy_install-oJJB7w/six-1.9.0/setup.cfg
Running six-1.9.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-oJJB7w/six-1.9.0/egg-dist-tmp-1116oK
no previously-included directories found matching 'documentation/_build'
zip_safe flag not set; analyzing archive contents...
six: module references __path__
Installed /home/chris/computer/wtmp/build/utmp/six-1.9.0-py2.7.egg
Searching for mccabe>=0.2.1,<0.4
Reading https://pypi.python.org/simple/mccabe/
Best match: mccabe 0.3.1
Downloading https://pypi.python.org/packages/source/m/mccabe/mccabe-0.3.1.tar.gz#md5=9a1570c470ff5db678cc0c03d5c0c237
Processing mccabe-0.3.1.tar.gz
Writing /tmp/easy_install-uFdTms/mccabe-0.3.1/setup.cfg
Running mccabe-0.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-uFdTms/mccabe-0.3.1/egg-dist-tmp-Q139di
Installed /home/chris/computer/wtmp/build/utmp/mccabe-0.3.1-py2.7.egg
Searching for pep8>=1.5.7,!=1.6.0,!=1.6.1,!=1.6.2
Reading https://pypi.python.org/simple/pep8/
Best match: pep8 1.5.7
Downloading https://pypi.python.org/packages/source/p/pep8/pep8-1.5.7.tar.gz#md5=f6adbdd69365ecca20513c709f9b7c93
Processing pep8-1.5.7.tar.gz
Writing /tmp/easy_install-BdNCrK/pep8-1.5.7/setup.cfg
Running pep8-1.5.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-BdNCrK/pep8-1.5.7/egg-dist-tmp-rrUWb1
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'testsuite'
warning: no previously-included files matching '*.pyo' found under directory 'testsuite'
no previously-included directories found matching 'docs/_build'
Installed /home/chris/computer/wtmp/build/utmp/pep8-1.5.7-py2.7.egg
Searching for pyflakes>=0.8.1,<0.9
Reading https://pypi.python.org/simple/pyflakes/
Best match: pyflakes 0.8.1
Downloading https://pypi.python.org/packages/source/p/pyflakes/pyflakes-0.8.1.tar.gz#md5=905fe91ad14b912807e8fdc2ac2e2c23
Processing pyflakes-0.8.1.tar.gz
Writing /tmp/easy_install-R5ltqy/pyflakes-0.8.1/setup.cfg
Running pyflakes-0.8.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-R5ltqy/pyflakes-0.8.1/egg-dist-tmp-a8CCFW
zip_safe flag not set; analyzing archive contents...
pyflakes.checker: module references __file__
pyflakes.checker: module references __path__
pyflakes.test.test_api: module references __file__
pyflakes.test.test_undefined_names: module references __file__
pyflakes.test.test_undefined_names: module references __path__
Installed /home/chris/computer/wtmp/build/utmp/pyflakes-0.8.1-py2.7.egg
warning: no files found matching '*.rst' under directory 'docs'
warning: no files found matching '*.py' under directory 'docs'
Installing collected packages: utmp
Found existing installation: utmp 0.4
Uninstalling utmp:
Successfully uninstalled utmp
Running setup.py install for utmp
warning: no files found matching '*.rst' under directory 'docs'
warning: no files found matching '*.py' under directory 'docs'
Installing utmp script to /home/chris/computer/wtmp/bin
Successfully installed utmp
Cleaning up...
【问题讨论】:
【参考方案1】:您可以通过调用pip list
或pip show utmp
来检查它是否安装在您的virualenv 中。
如果没有,请尝试重新安装:
pip install --upgrade --no-deps --force-reinstall utmp
并使用错误日志扩展您的问题。
还要验证 shebang line,因为它可能不指向您的 virtualenv。
【讨论】:
好像安装了:(wtmp)chris@chris-nb:~/computer/wtmp$ pip list argparse (1.2.1) enum (0.4.4) pip (1.5.4) setuptools (2.2) utmp (0.4) wsgiref (0.1.2) 您是否尝试过重新安装它:pip install --upgrade --no-deps --force-reinstall utmp
?
我已经在上面添加了重新安装日志。
你可以尝试启动 python 解释器并输入import utmp
。如果可行,则问题出在wtmp.py
脚本中。检查shebang line,因为它可能不指向您的venv。
谢谢!我用错了Shebang线!自从我上次使用python和virtualenv以来已经有一段时间了。【参考方案2】:
刚刚遇到同样的问题。我通过使用which python
发现了问题所在。它告诉我,我实际上有一个别名,它指向与当前virtualenv
中的不同的python 可执行文件。显然别名比通过source
设置的路径更重要。
【讨论】:
是的,别名优先。为什么这与问题有关? 它是相关的,因为这可能是为什么在 virtualenv 中找不到 Python 模块的可能原因之一。如果有人早点在这里发布它,我会更快地解决我的问题,因此我想我会在这里添加我的解决方案作为提示。以上是关于在 virtualenv 中找不到 Python 模块的主要内容,如果未能解决你的问题,请参考以下文章
VirtualEnv 系统找不到指定的路径:'...Python3.6\\DLL'