为什么numpy导入的行为有所不同?

Keyur

我使用以下命令在Ubuntu 16.04 LTS机器上的python3虚拟环境中安装numpy。

我的目标是在我的venv中默认使用python 3.5并学习numpy。我不必显式使用python3我觉得有一些重叠/错误,如果现在忽略的话,这可能是一个更大的问题。另外,我没有在虚拟环境中安装python 2.x,但是我在系统级别安装了它。

命令python3 -Vpython -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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在导入NumPy之后sum的行为会有所不同

为什么hide()的行为有所不同?

为什么to_sym的行为有所不同?

为什么groupby操作的行为有所不同

为什么从定制模块导入的函数在JSfiddle中工作时行为会有所不同?

'and'(布尔值)vs'&'(按位)-为什么列表与numpy数组在行为上有所不同?

<|>在Parsec中-为什么这些示例的行为有所不同?

当类中的counter较大时,为什么java线程的行为会有所不同?

为什么在此示例中,“ grep”的行为有所不同?

为什么“花括号”在JavaScript中的行为有所不同?

为什么中断和isInterrupted的行为方式有所不同?

为什么这些小型D程序的行为有所不同?

为什么ContextMenuOpening的Source对于Canvas和UserControl的行为有所不同?

为什么`Paths.get`方法的行为有所不同?

当类在函数内时,为什么类中的全局行为会有所不同?

为什么这些生成器表达式的行为有所不同?

为什么bash的脚本与stdin的行为有所不同?

为什么hasattr在使用@property方法的类和实例上的行为有所不同?

为什么此数组初始化的行为有所不同?

将CSS应用于DOM后,为什么它的行为有所不同?

为什么NumberFormatInfo在Azure环境中的行为有所不同?

为什么pidof和pgrep的行为有所不同?

为什么在C#和Java中,对流的“关闭”调用的行为有所不同?

为什么从函数调用Bash的“源”命令的行为会有所不同?

为什么在这些示例中skipWhile的行为有所不同?

为什么当类型实现接口时,行为会有所不同?

解释* Rc :: make_mut的行为以及为什么它与Mutex有所不同

为什么reference_wrapper对于内置类型的行为有所不同?

为什么嵌套类在Java和C#之间的行为有所不同?