我是 virtualenv 的新手,但我遇到的错误对我来说没有任何意义。
当我pip install MultiString
在我的 Python 2.7 virtualenv 中执行此操作时,我可以毫无问题地使用该包。
如果我在 Python 3.2 中执行相同操作,安装会按预期运行,但是在尝试导入时,我得到:
File "<stdin>", line 1, in <module>
File "/home/tom/p3/lib/python3.2/site-packages/multistring/__init__.py", line 1, in <module>
from MultiString import MultiString
ImportError: No module named MultiString
虽然:
(p3)tom@K9:~$ ls -alh /home/tom/p3/lib/python3.2/site-packages/multistring/
total 28K
drwxrwxr-x 3 tom tom 4.0K Mar 22 11:44 .
drwxrwxr-x 7 tom tom 4.0K Mar 22 11:43 ..
-rw-rw-r-- 1 tom tom 36 Mar 22 11:43 __init__.py
-rw-rw-r-- 1 tom tom 12K Mar 22 11:43 MultiString.py
drwxrwxr-x 2 tom tom 4.0K Mar 22 11:43 __pycache__
如果我cd
进入该目录并python __init__.py
从 p3 virtualenv 中执行,则没有问题。同样,如果我cd
进入该目录并打开一个交互式会话,我就可以像往常一样导入和使用该库。
给出的错误消息表明它正在找到正确的包,但我不明白为什么它无法导入它。
我尝试添加/home/tom/p3/lib/python3.2/site-packages
到PATH
环境变量以防万一,但它并没有解决问题。
我正在尝试使用 tox 来测试我的库与 Python 3 的兼容性,并且我没有过多地使用 Python 3,但我觉得这更多是 virtualenv 的问题。