首页 > 解决方案 > Python 从错误的目录导入包(在 virtualenv 之外)

问题描述

我在 Ubuntu 服务器上处理我的 virtualenv。当我尝试导入 scipy. 该模块以某种方式从 virtualenv 外部导入,我不希望这种行为发生。(这就是 virtualenv 的用途,对吗?)

我检查了我正在使用的 python,它是我的 virtualenv 中的那个

$ which python
/mydir/.venv3.6/bin/python

然后我检查了 scipy 是否安装在 virtualenv 中

$ which pip
/mydir/.venv3.6/bin/pip
$ pip list
...
scipy    1.3.1 
...

但是,当我导入 scipy 时,它是从 virtualenv 外部导入的。其他模块工作得很好。

$ python
Python 3.6.9 (default, Jul  3 2019, 15:36:16)
...
>>> import numpy
>>> import scipy
>>> print(numpy)
<module 'numpy' from '/mydir/.venv3.6/lib/python3.6/site-packages/numpy/__init__.py'>
>>> print(scipy)
<module 'scipy' from '/usr/lib/python3.6/scipy/__init__.py'>

我卸载 scipy 并重新安装它,但没有任何变化。为什么会这样?

标签: pythonvirtualenv

解决方案


我仍然不知道是什么原因造成的。最后,我创建了一个 Conda 环境。从那里开始,一切都按预期工作。


推荐阅读