HPCサーバーで独自のconda python環境を作成しようとしていますが、非常に奇妙なことが起こっています。
問題
新しいconda環境を作成した後、pythonがこの環境に表示されず、ベース環境を使用しているようです...したがって、新しい環境にインストールされたパッケージを使用できませんが、基本環境のものを見る...
これが私がやったことです
次のように環境をインストールします。
$ conda create -n niml pip python=3.6.5
$ source activate niml
(niml) $ conda install -c conda-forge luigi
次に、インストールしたパッケージを確認します。
(niml) $ conda list
そしてここに私が得るもの、非常に基本的な環境があります:
# Name Version Build Channel
botocore 1.10.61 py_0 conda-forge
ca-certificates 2018.4.16 0 conda-forge
certifi 2018.4.16 py36_0 conda-forge
docutils 0.14 py36_0 conda-forge
jmespath 0.9.3 py_1 conda-forge
libedit 3.1.20170329 h6b74fdf_2
libffi 3.2.1 hd88cf55_4
libgcc-ng 7.2.0 hdf63c60_3
libstdcxx-ng 7.2.0 hdf63c60_3
lockfile 0.12.2 py_1 conda-forge
luigi 2.7.6 py36_0 conda-forge
ncurses 6.1 hf484d3e_0
openssl 1.0.2o 0 conda-forge
pip 10.0.1 py36_0
pyparsing 2.2.0 py_1 conda-forge
python 3.6.5 hc3d631a_2
python-daemon 2.1.2 py36_0
python-dateutil 2.7.3 py_0 conda-forge
readline 7.0 ha6073c6_4
setuptools 39.2.0 py36_0
six 1.11.0 py36_1 conda-forge
sqlite 3.24.0 h84994c4_0
tk 8.6.7 hc745277_3
tornado 4.5.3 py36_0 conda-forge
wheel 0.31.1 py36_0
xz 5.2.4 h14c3975_4
zlib 1.2.11 ha838bed_2
次に、pythonを実行して、インストールしたパッケージluigi
をインポートしようとすると、エラーが発生しません。
(niml) $ python
>>> import luigi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'luigi'
また、新しい環境ではなくベース環境にあるnumpy
をインポートしようとしましたが、それは機能します。
>>> import numpy
上記は機能します。つまり、python
はベース環境で実行されていると見なします。
自分の環境のPythonが実行されています
私はどのpythonが実行されているかを確認しました、そしてそれは確かに新しい環境niml
のものです:
>>> import sys
>>> sys.executable
'~/.conda/envs/niml/bin/python'
また、コマンドラインから確認すると、環境内のpython
実行可能ファイルです。
(niml) $ which python
~/.conda/envs/niml/bin/python
私はHPCで実行しています
私は何百回も前にanaconda環境を作成しましたが、この問題は一度もありませんでした。唯一の違いは、HPCサーバーを使用しているため、次のようなものを作成する必要があったことです。
module load python/anaconda3
これが、この問題を引き起こしている可能性のある私の通常のワークフローとの唯一の違いです...
他の誰かがこの問題を以前に見たことがあり、それを解決できましたか?
私は同様の問題を解決しようとしていて、コンダ環境を使用するのではなく、virtualenvを通じてこれを解決しました。 Anacondaとあなたのマシンの間には、virtualenvに新しい環境をセットアップすることで修正されたように見える新しい環境を制御していると考えるという点で、競合があると思います。
役立つ場合は、virtualenvを使用して環境をセットアップする方法を次に示します。新しい環境の場所がまだない場合は、作成します。
mkdir ~/virtualenvironment
仮想環境をセットアップします。
virtualenv ~/virtualenvironment/niml/ --python=python3.6.5
環境をアクティブ化します。
source bin/activate
必要なパッケージをすべてインストールしたことを確認してください:
pip install luigi
パッケージがPythonで適切にインポートされることを確認します。
python
import luigi
非アクティブ化するには:
source deactivate