次のコマンドを使用して、Ubuntu 16.04LTSマシンのpython3仮想環境にnumpyをインストールしました。
私の目標は、venvでデフォルトでpython 3.5を使用し、numpyを学習することです。明示的に使用する必要はありませんpython3
。今無視するともっと大きな問題になるかもしれないいくつかの重複/エラーがあると思います。また、仮想環境にpython 2.xをインストールしていませんが、システムレベルでインストールしています。
コマンドpython3 -V
とpython -V
showは同じバージョンであり、両方とも同じパスにあります。最後のコマンドが機能するのに、最後から2番目のコマンドが機能しないのはなぜですか?
~/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]
コメントを追加