事象発生日:2017-09-17
記事公開日:2017-09-18
アクセス数:57381
新しいWindows PCを購入したので,Python環境を一から構築しなおした.
過去の自作ツールが2.7系で書かれているため,2.7系ベースで3.x系も使える環境を構築する.
と言いつつ,Pythonは好きではないので,最近は新規でコードを書くとこはない.
対話モードで起動すれば,高機能電卓として使え便利だが,そのようなものはirb (Interactive Ruby) を使えばPythonを使う必要もない.
大学の学科内共通言語がPythonなのが,本当に理解できない.
Microsoft Windows 10 Home (64bit)
| https://www.anaconda.com/download/よりAnaconda 4.4.0 For Windows Installer (Python 2.7 version) をダウンロードする. | |
デフォルト設定のままでインストールする.すると,C:\ProgramData\Anaconda2にインストールされる.(変なとこに入れるなぁ,という印象.) |
コマンドプロンプトからpythonやpipと入力しても実行できない.
どうやらインストール時に,“Anacondaのパスを通す(英語)”のチェックをつけていなかったのがいけないようだ.説明文には非推奨とあった気がする.
なお,“AnacondaをデフォルトのPythonにする(英語)”みたいなのはチェックに入っていた.
仕方がないので,旧PCでパスが通っていた
C:\ProgramData\Anaconda2 | |
C:\ProgramData\Anaconda2\Scripts | |
C:\ProgramData\Anaconda2\Library\bin |
にパスを通す.
システム環境変数に,変数ANACONDA_PATHを新規作成,その変数値をC:\ProgramData\Anaconda2;C:\ProgramData\Anaconda2\Scripts;C:\ProgramData\Anaconda2\Library\bin;とし,%ANACONDA_PATH%をシステム環境PATHへ登録した.
3.x系の仮想環境を構築する.
コマンドプロンプトで,
> conda create -n py36 python=3.6 anaconda
と実行すると,C:\Users\${username}\AppData\Local\conda\conda\envs\py36に環境ができてしまった.
特定ユーザではなく,全ユーザに構築したかったので,とりあえず
> conda remove -n py36 --all
で環境の削除.
さらに,(正しい操作か不明だが)C:\Users\${username}\AppData\Local\conda以下のディレクトリを削除.
コマンドプロンプトを管理者権限で立ち上げて,
> conda create -n py36 python=3.6 anaconda
と実行すると,C:\ProgramData\Anaconda2\envs\py36に環境ができた.
以下,環境構築のコマンドログである.
> conda create -n py36 python=3.6 anaconda
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment C:\ProgramData\Anaconda2\envs\py36:
The following NEW packages will be INSTALLED:
_license: 1.1-py36_1
alabaster: 0.7.10-py36_0
anaconda: 4.4.0-np112py36_0
anaconda-client: 1.6.3-py36_0
anaconda-navigator: 1.6.2-py36_0
anaconda-project: 0.6.0-py36_0
asn1crypto: 0.22.0-py36_0
astroid: 1.4.9-py36_0
astropy: 1.3.2-np112py36_0
babel: 2.4.0-py36_0
backports: 1.0-py36_0
beautifulsoup4: 4.6.0-py36_0
bitarray: 0.8.1-py36_1
blaze: 0.10.1-py36_0
bleach: 1.5.0-py36_0
bokeh: 0.12.5-py36_1
boto: 2.46.1-py36_0
bottleneck: 1.2.1-np112py36_0
bzip2: 1.0.6-vc14_3 [vc14]
cffi: 1.10.0-py36_0
chardet: 3.0.3-py36_0
click: 6.7-py36_0
cloudpickle: 0.2.2-py36_0
clyent: 1.2.2-py36_0
colorama: 0.3.9-py36_0
comtypes: 1.1.2-py36_0
console_shortcut: 0.1.1-py36_1
contextlib2: 0.5.5-py36_0
cryptography: 1.8.1-py36_0
curl: 7.52.1-vc14_0 [vc14]
cycler: 0.10.0-py36_0
cython: 0.25.2-py36_0
cytoolz: 0.8.2-py36_0
dask: 0.14.3-py36_1
datashape: 0.5.4-py36_0
decorator: 4.0.11-py36_0
distributed: 1.16.3-py36_0
docutils: 0.13.1-py36_0
entrypoints: 0.2.2-py36_1
et_xmlfile: 1.0.1-py36_0
fastcache: 1.0.2-py36_1
flask: 0.12.2-py36_0
flask-cors: 3.0.2-py36_0
freetype: 2.5.5-vc14_2 [vc14]
get_terminal_size: 1.0.0-py36_0
gevent: 1.2.1-py36_0
greenlet: 0.4.12-py36_0
h5py: 2.7.0-np112py36_0
hdf5: 1.8.15.1-vc14_4 [vc14]
heapdict: 1.0.0-py36_1
html5lib: 0.999-py36_0
icu: 57.1-vc14_0 [vc14]
idna: 2.5-py36_0
imagesize: 0.7.1-py36_0
ipykernel: 4.6.1-py36_0
ipython: 5.3.0-py36_0
ipython_genutils: 0.2.0-py36_0
ipywidgets: 6.0.0-py36_0
isort: 4.2.5-py36_0
itsdangerous: 0.24-py36_0
jdcal: 1.3-py36_0
jedi: 0.10.2-py36_2
jinja2: 2.9.6-py36_0
jpeg: 9b-vc14_0 [vc14]
jsonschema: 2.6.0-py36_0
jupyter: 1.0.0-py36_3
jupyter_client: 5.0.1-py36_0
jupyter_console: 5.1.0-py36_0
jupyter_core: 4.3.0-py36_0
lazy-object-proxy: 1.2.2-py36_0
libpng: 1.6.27-vc14_0 [vc14]
libtiff: 4.0.6-vc14_3 [vc14]
llvmlite: 0.18.0-py36_0
locket: 0.2.0-py36_1
lxml: 3.7.3-py36_0
markupsafe: 0.23-py36_2
matplotlib: 2.0.2-np112py36_0
menuinst: 1.4.7-py36_0
mistune: 0.7.4-py36_0
mkl: 2017.0.1-0
mkl-service: 1.1.2-py36_3
mpmath: 0.19-py36_1
msgpack-python: 0.4.8-py36_0
multipledispatch: 0.4.9-py36_0
navigator-updater: 0.1.0-py36_0
nbconvert: 5.1.1-py36_0
nbformat: 4.3.0-py36_0
networkx: 1.11-py36_0
nltk: 3.2.3-py36_0
nose: 1.3.7-py36_1
notebook: 5.0.0-py36_0
numba: 0.33.0-np112py36_0
numexpr: 2.6.2-np112py36_0
numpy: 1.12.1-py36_0
numpydoc: 0.6.0-py36_0
odo: 0.5.0-py36_1
olefile: 0.44-py36_0
openpyxl: 2.4.7-py36_0
openssl: 1.0.2l-vc14_0 [vc14]
packaging: 16.8-py36_0
pandas: 0.20.1-np112py36_0
pandocfilters: 1.4.1-py36_0
partd: 0.3.8-py36_0
path.py: 10.3.1-py36_0
pathlib2: 2.2.1-py36_0
patsy: 0.4.1-py36_0
pep8: 1.7.0-py36_0
pickleshare: 0.7.4-py36_0
pillow: 4.1.1-py36_0
pip: 9.0.1-py36_1
ply: 3.10-py36_0
prompt_toolkit: 1.0.14-py36_0
psutil: 5.2.2-py36_0
py: 1.4.33-py36_0
pycosat: 0.6.2-py36_0
pycparser: 2.17-py36_0
pycrypto: 2.6.1-py36_6
pycurl: 7.43.0-py36_2
pyflakes: 1.5.0-py36_0
pygments: 2.2.0-py36_0
pylint: 1.6.4-py36_1
pyodbc: 4.0.16-py36_0
pyopenssl: 17.0.0-py36_0
pyparsing: 2.1.4-py36_0
pyqt: 5.6.0-py36_2
pytables: 3.2.2-np112py36_4
pytest: 3.0.7-py36_0
python: 3.6.1-2
python-dateutil: 2.6.0-py36_0
pytz: 2017.2-py36_0
pywavelets: 0.5.2-np112py36_0
pywin32: 220-py36_2
pyyaml: 3.12-py36_0
pyzmq: 16.0.2-py36_0
qt: 5.6.2-vc14_4 [vc14]
qtawesome: 0.4.4-py36_0
qtconsole: 4.3.0-py36_0
qtpy: 1.2.1-py36_0
requests: 2.14.2-py36_0
rope: 0.9.4-py36_1
ruamel_yaml: 0.11.14-py36_1
scikit-image: 0.13.0-np112py36_0
scikit-learn: 0.18.1-np112py36_1
scipy: 0.19.0-np112py36_0
seaborn: 0.7.1-py36_0
setuptools: 27.2.0-py36_1
simplegeneric: 0.8.1-py36_1
singledispatch: 3.4.0.3-py36_0
sip: 4.18-py36_0
six: 1.10.0-py36_0
snowballstemmer: 1.2.1-py36_0
sortedcollections: 0.5.3-py36_0
sortedcontainers: 1.5.7-py36_0
sphinx: 1.5.6-py36_0
spyder: 3.1.4-py36_0
sqlalchemy: 1.1.9-py36_0
statsmodels: 0.8.0-np112py36_0
sympy: 1.0-py36_0
tblib: 1.3.2-py36_0
testpath: 0.3-py36_0
tk: 8.5.18-vc14_0 [vc14]
toolz: 0.8.2-py36_0
tornado: 4.5.1-py36_0
traitlets: 4.3.2-py36_0
unicodecsv: 0.14.1-py36_0
vs2015_runtime: 14.0.25123-0
wcwidth: 0.1.7-py36_0
werkzeug: 0.12.2-py36_0
wheel: 0.29.0-py36_0
widgetsnbextension: 2.0.0-py36_0
win_unicode_console: 0.5-py36_0
wrapt: 1.10.10-py36_0
xlrd: 1.0.0-py36_0
xlsxwriter: 0.9.6-py36_0
xlwings: 0.10.4-py36_0
xlwt: 1.2.0-py36_0
zict: 0.1.2-py36_0
zlib: 1.2.8-vc14_3 [vc14]
Proceed ([y]/n)? y
...
以下,パッケージのダウンロード画面
...
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\ProgramData\Anaconda2\envs\py36', env_name: 'py36', mode: 'None', used_mode: 'system'
#
# To activate this environment, use:
# > activate py36
#
# To deactivate this environment, use:
# > deactivate py36
#
# * for power-users using bash, you must source
#
rem 環境の一覧 conda info -e rem 環境の切り替え activate py36 rem 環境の切り替えを戻す deactivate
> path
PATH=...${略}...C:\ProgramData\Anaconda2;C:\ProgramData\Anaconda2\Scripts;C:\ProgramData\Anaconda2\Library\bin;...${略}...
> where python
C:\ProgramData\Anaconda2\python.exe
> where pip
C:\ProgramData\Anaconda2\Scripts\pip.exe
> activate py36
(py36) > where python
C:\ProgramData\Anaconda2\envs\py36\python.exe
C:\ProgramData\Anaconda2\python.exe
(py36) > where pip
C:\ProgramData\Anaconda2\envs\py36\Scripts\pip.exe
C:\ProgramData\Anaconda2\Scripts\pip.exe
(py36) > path
PATH=C:\ProgramData\Anaconda2\envs\py36;C:\ProgramData\Anaconda2\envs\py36\Library\mingw-w64\bin;C:\ProgramData\Anaconda2\envs\py36\Library\usr\bin;C:\ProgramData\Anaconda2\envs\py36\Library\bin;C:\ProgramData\Anaconda2\envs\py36\Scripts;...${略}...C:\ProgramData\Anaconda2;C:\ProgramData\Anaconda2\Scripts;C:\ProgramData\Anaconda2\Library\bin;...${略}...
上のようにコマンドを叩いたのだが,環境の切り替え時に環境PATHの上位に仮想環境のPATHを登録しているように見える.
root環境のPATHが消えていないのが気になるところ.
PATHへの登録時に,直接ではなく環境変数を介したことが影響しているとかあるのかな?
名前
Email (※公開されることはありません)
コメント