Python 从错误的目录导入包(在 virtualenv 之外)
Python import package from the wrong directory(outside of the 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 并重新安装,但没有任何变化。
为什么会这样?
我仍然不知道是什么原因造成的。
最后,我创建了一个 Conda 环境。一切都按预期进行。
我在 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 并重新安装,但没有任何变化。 为什么会这样?
我仍然不知道是什么原因造成的。 最后,我创建了一个 Conda 环境。一切都按预期进行。