我使用以下命令在Ubuntu 16.04 LTS机器上的python3虚拟环境中安装numpy。
我的目标是在我的venv中默认使用python 3.5并学习numpy。我不必显式使用python3
。我觉得有一些重叠/错误,如果现在忽略的话,这可能是一个更大的问题。另外,我没有在虚拟环境中安装python 2.x,但是我在系统级别安装了它。
命令python3 -V
和python -V
显示相同的版本,并且都位于相同的路径。为什么最后一个命令有效,倒数第二个无效?
~/proj1$ virtualenv --no-site-packages -p python3 venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/$USER/proj1/venv/bin/python3
Also creating executable in /home/$USER/proj1/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
~/proj1$ source venv/bin/activate
(venv) ~/proj1$ which pip
/home/$USER/proj1/venv/bin/pip
(venv) ~/proj1$ pip -V
pip 20.0.2 from /home/$USER/proj1/venv/lib/python3.5/site-packages/pip (python 3.5)
(venv) ~/proj1$ pip install numpy
Collecting numpy
Using cached numpy-1.18.1-cp35-cp35m-manylinux1_x86_64.whl (19.9 MB)
Installing collected packages: numpy
Successfully installed numpy-1.18.1
(venv) ~/proj1$ python -V
Python 3.5.2
(venv) ~/proj1$ python3 -V
Python 3.5.2
(venv) ~/proj1$ which python
/home/$USER/proj1/venv/bin/python
(venv) ~/proj1$ which python3
/home/$USER/proj1/venv/bin/python3
(venv) ~/proj1$ python -c "import numpy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'numpy'
(venv) ~/proj1$ python3 -c "import numpy"
(venv) ~/proj1$
这个问题numpy
本身与无关。相反,发生的事情是别名使python='/usr/bin/python3'
您的外壳无法找到python
执行路径中第一个可执行文件(即,具有“ which python
”给定路径的可执行文件),这会干扰您的虚拟环境设置。由于这个别名,
python -c "import numpy"
被解释为
/usr/bin/python3 -c "import numpy"
既然你安装numpy
在虚拟环境中,全系统的Python 3安装在/usr/bin
具有设计没有那方面的知识numpy
安装,让你得到ImportError
。
另一方面,如果您要跑步
unalias python
python -c "import numpy"
python
如果/home/$USER/proj1/venv/bin/python
您已经来源/home/$USER/proj1/venv/bin/activate
,那么将被视为,当然,一切都会按预期进行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句