Condaとymlファイルを使用して仮想環境を作成したい。
コマンド:
conda env create -n ex3 -f env.yml
ENTERと入力すると、次のメッセージが表示されます。
ResolvePackageNotFound:
- gst-plugins-base==1.8.0=0
- dbus==1.10.20=0
- opencv3==3.2.0=np111py35_0
- qt==5.6.2=5
- libxcb==1.12=1
- libgcc==5.2.0=0
- gstreamer==1.8.0=0
ただし、Macにはあります。私のMacOS:High Sierra 10.13.3
私のenv.ymlファイルは次のようになります:
name: ex3
channels:
- menpo
- defaults
dependencies:
- cairo=1.14.8=0
- certifi=2016.2.28=py35_0
- cycler=0.10.0=py35_0
- dbus=1.10.20=0
- expat=2.1.0=0
- fontconfig=2.12.1=3
- freetype=2.5.5=2
- glib=2.50.2=1
- gst-plugins-base=1.8.0=0
- gstreamer=1.8.0=0
- harfbuzz=0.9.39=2
- hdf5=1.8.17=2
- icu=54.1=0
- jbig=2.1=0
- jpeg=9b=0
- libffi=3.2.1=1
- libgcc=5.2.0=0
- libgfortran=3.0.0=1
- libiconv=1.14=0
- libpng=1.6.30=1
- libtiff=4.0.6=3
- libxcb=1.12=1
- libxml2=2.9.4=0
- matplotlib=2.0.2=np111py35_0
- mkl=2017.0.3=0
- numpy=1.11.3=py35_0
- openssl=1.0.2l=0
- pandas=0.20.1=np111py35_0
- patsy=0.4.1=py35_0
- pcre=8.39=1
- pip=9.0.1=py35_1
- pixman=0.34.0=0
- pyparsing=2.2.0=py35_0
- pyqt=5.6.0=py35_2
- python=3.5.4=0
- python-dateutil=2.6.1=py35_0
- pytz=2017.2=py35_0
- qt=5.6.2=5
- readline=6.2=2
- scipy=0.19.0=np111py35_0
- seaborn=0.8=py35_0
- setuptools=36.4.0=py35_1
- sip=4.18=py35_0
- six=1.10.0=py35_0
- sqlite=3.13.0=0
- statsmodels=0.8.0=np111py35_0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.2.3=0
- zlib=1.2.11=0
- opencv3=3.2.0=np111py35_0
- pip:
- bleach==1.5.0
- enum34==1.1.6
- html5lib==0.9999999
- markdown==2.6.11
- protobuf==3.5.1
- tensorflow==1.4.1
- tensorflow-tensorboard==0.4.0
- werkzeug==0.14.1
この問題を解決するには?
さて...スタックオーバーフロー詳細を言うように促しますが、私は物事を明確に説明していると思います。悲しいことに、スタックオーバーフローは添付ファイルのアップロードをサポートしていません...
私は同じ問題を抱えていて、あなたの質問はそれについてググった。
ResolvePackageNotFound
エラーは、まだインストールされていないが必要なすべてのパッケージを示します。
問題を解決するには、それらをpip
セクションの下に移動します。
name: ex3
channels:
- menpo
- defaults
dependencies:
- cairo=1.14.8=0
- ***
- another dependencies, except not found ones
- pip:
- gst-plugins-base==1.8.0
- bleach==1.5.0
- enum34==1.1.6
- html5lib==0.9999999
- markdown==2.6.11
- protobuf==3.5.1
- tensorflow==1.4.1
- tensorflow-tensorboard==0.4.0
- werkzeug==0.14.1
*** added ***
- gst-plugins-base==1.8.0
- dbus==1.10.20
- opencv3==3.2.0
- qt==5.6.2
- libxcb==1.12
- libgcc==5.2.0
- gstreamer==1.8.0
同じ問題が発生し、これに関連する GitHubの問題 が見つかりました。コメントで、@ kalefranzはconda env exportで--no-builds
フラグを使用して理想的なソリューションを投稿しました。
conda env export --no-builds > environment.yml
ただし、ビルド番号を削除しても、パッケージによっては、OSによってバージョン番号が異なる場合があります。私が考える最良の方法は、OSごとに異なるenv ymlファイルを作成することです。
お役に立てれば。
'ResolvePackageNotFound'エラーには別の理由が考えられます-必要なパッケージのバージョンが、古いバージョンのリポジトリにある可能性がありますデフォルトで検索されます。
Anacondaリポジトリ内の場所へのさまざまなパスは、次の場所にあります。
https://repo.continuum.io/pkgs/
私のymlファイル[NW_BI.yml]は次のとおりです。
name: NW_BI
channels:
- 'https://repo.continuum.io/pkgs/free' # Remove this line and it fails!!!
- conda-forge
- defaults
dependencies:
- python=2.7.10
- pandas=0.16.2
- pyodbc=3.0.10
次を使用して作成:
conda env create -f 'path to file'\NW_BI.yml
古い環境を再現したかった!!!!
使用するメモ:
アナコンダ3 2019.10
ウインドウズ10
これを見ていて、Condaバージョンpackge=ver=py.*
をpipスタイルpackage==ver
に変更するのが面倒だと感じた場合は、Condaスタイルから=py.*
部分を削除するこの小さなスクリプトを書きました。
以下のコードは、すでにpackage=ver
をpackage==ver
に変更した場合を想定しています。
#!/bin/bash
COUNT=0
find_pip=0
while IFS= read -r line; do
COUNT=$(( $COUNT + 1 ))
# echo "$COUNT"
# echo "read it"
if echo ${line} | grep -q -- "- pip:" ; then
# echo "find it"
find_pip=1
indent=`awk -F- '{print length($1)}' <<< "$line"`
pip_indent=$(( $indent + 2 ))
# echo $indent
# echo $pip_indent
fi
line_indent=`awk -F- '{print length($1)}' <<< "$line"`
if [[ ${find_pip} ]] && [[ ${pip_indent} -eq ${line_indent} ]]; then
# echo "$line"
new_line=`echo ${line} | cut -d'=' -f-3`
new_line=" $new_line"
# echo "${new_line}"
sed -e "${COUNT}s/.*/${new_line}/" -i '' $1
fi
done < "$1"