[英]conda environment pip is trying to install dependencies globally
我的Python / Conda / Pip安裝以某種方式使pip甚至在活動的conda環境中運行時也嘗試安裝到全局site-packages目錄中。
在運行10.12.4的Macbook Pro上,可以通過以下方式重現:
$conda create -n test python=3.6
$source activate test
$which pip /Users/ethankeller/anaconda3/envs/test/bin/pip
$pip install numpy Collecting numpy Using cached numpy-1.13.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Installing collected packages: numpy Exception: Traceback (most recent call last): File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_set.py", line 784, in install **kwargs File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 316, in clobber ensure_dir(destdir) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/os.py", line 220, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/lib/python3.6/site-packages/numpy'
$pip install numpy Collecting numpy Using cached numpy-1.13.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Installing collected packages: numpy Exception: Traceback (most recent call last): File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_set.py", line 784, in install **kwargs File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 316, in clobber ensure_dir(destdir) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/os.py", line 220, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/lib/python3.6/site-packages/numpy'
我想某些環境變量設置有誤……關於什么可能是錯誤的,或者從哪里開始尋找任何建議?
經過一段時間的努力,我非常願意讓自己擺脫這個問題,所以我搜尋了一段時間,然后才弄清楚並進行了測試。
通過指定python版本創建新的conda env時,它將使用conda_root_python版本。 而且,如果您沒有安裝pip軟件包,而是嘗試在創建的conda env下使用pip,則它將僅運行conda_root_pip並將該軟件包安裝在根site_packages中。
我知道僅在您創建的conda env中安裝python軟件包的三種方法。 為了獲得更好的解釋,我們使用相同的python版本的conda根環境創建了一個conda env。
conda create -n myenv python
I.一位官員建議,使用conda命令為指定的conda環境安裝軟件包,
conda install -n myenv tensorflow
II。 另一個官方建議,進入您指定的環境並運行conda install
source activate myenv
conda install tensorflow
通過以上兩種方式,您無需安裝其他軟件包,例如pip和其他與pip相關的軟件包。
III。 對於那些真的想點點滴滴的人 ,只是因為習慣了。 安裝pip包(就像上述兩種方法一樣)。
conda install -n myenv pip
要么
source active myenv
conda install pip
然后在您的環境中進行pip安裝
pip install tensorflow
要全局安裝它,您可以使用“ sudo pip install numpy”
避免使用sudo來避免麻煩。 sudo將“全局”安裝Python軟件包,並可能覆蓋現有安裝,導致依賴項錯誤並影響其他用戶。 盡可能使用virtualenv,否則pip install --user,這將在當前用戶中安裝軟件包
pip install numpy --user
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.