在我的MacOS Mojave终端中,我想安装一个带有pip的python包。最后它说:
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
所以我想用给定的命令更新pip,但是我收到一个错误:
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied:
'/Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/EGG-INFO/PKG-INFO'
Consider using the `--user` option or check the permissions.
我真的不明白现在该做什么。此外,我意识到它在错误消息中说Python 2.7,但我有并且只想使用python 3。
如果你想使用python3 +来安装你需要使用pip3 install packageName
的软件包
要解决错误13,你必须在最后添加--user
pip3 install packageName --user
尝试下面的命令行,以便MacOS检查用户的权限。
$ sudo python -m pip install --user --upgrade pip
关于permissions命令,请尝试在终端命令前使用sudo:
sudo pip install --upgrade pip
Sudo是一个程序,允许您使用超级用户的权限运行命令。
关于python尝试运行pip作为这样的可执行文件:
python3.6 -m pip install <package>
我犯了同样的错误然后我意识到我已经以root用户身份创建了我的虚拟环境。它是写保护的,因此请检查您的虚拟环境是否受写保护。做一个新的venv并再试一次
我也有同样的问题,我尝试了很多不同的命令行,这个对我有用:
尝试:
conda install py-xgboost
这就是我得到的:
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: /home/simplonco/anaconda3
added / updated specs:
- py-xgboost
The following packages will be downloaded:
package | build
---------------------------|-----------------
_py-xgboost-mutex-2.0 | cpu_0 9 KB
ca-certificates-2019.1.23 | 0 126 KB
certifi-2018.11.29 | py37_0 146 KB
conda-4.6.2 | py37_0 1.7 MB
libxgboost-0.80 | he6710b0_0 3.7 MB
mkl-2019.1 | 144 204.6 MB
mkl_fft-1.0.10 | py37ha843d7b_0 169 KB
mkl_random-1.0.2 | py37hd81dba3_0 405 KB
numpy-1.15.4 | py37h7e9f1db_0 47 KB
numpy-base-1.15.4 | py37hde5b4d6_0 4.2 MB
py-xgboost-0.80 | py37he6710b0_0 1.7 MB
scikit-learn-0.20.2 | py37hd81dba3_0 5.7 MB
scipy-1.2.0 | py37h7c811a0_0 17.7 MB
------------------------------------------------------------
Total: 240.0 MB
The following NEW packages will be INSTALLED:
_py-xgboost-mutex pkgs/main/linux-64::_py-xgboost-mutex-2.0-cpu_0
libxgboost pkgs/main/linux-64::libxgboost-0.80-he6710b0_0
py-xgboost pkgs/main/linux-64::py-xgboost-0.80-py37he6710b0_0
The following packages will be UPDATED:
ca-certificates anaconda::ca-certificates-2018.12.5-0 --> pkgs/main::ca-certificates-2019.1.23-0
mkl 2019.0-118 --> 2019.1-144
mkl_fft 1.0.4-py37h4414c95_1 --> 1.0.10-py37ha843d7b_0
mkl_random 1.0.1-py37h4414c95_1 --> 1.0.2-py37hd81dba3_0
numpy 1.15.1-py37h1d66e8a_0 --> 1.15.4-py37h7e9f1db_0
numpy-base 1.15.1-py37h81de0dd_0 --> 1.15.4-py37hde5b4d6_0
scikit-learn 0.19.2-py37h4989274_0 --> 0.20.2-py37hd81dba3_0
scipy 1.1.0-py37hfa4b5c9_1 --> 1.2.0-py37h7c811a0_0
The following packages will be SUPERSEDED by a higher-priority channel:
certifi anaconda --> pkgs/main
conda anaconda --> pkgs/main
openssl anaconda::openssl-1.1.1-h7b6447c_0 --> pkgs/main::openssl-1.1.1a-h7b6447c_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
libxgboost-0.80 | 3.7 MB | ##################################### | 100%
mkl_random-1.0.2 | 405 KB | ##################################### | 100%
certifi-2018.11.29 | 146 KB | ##################################### | 100%
ca-certificates-2019 | 126 KB | ##################################### | 100%
conda-4.6.2 | 1.7 MB | ##################################### | 100%
mkl-2019.1 | 204.6 MB | ##################################### | 100%
mkl_fft-1.0.10 | 169 KB | ##################################### | 100%
numpy-1.15.4 | 47 KB | ##################################### | 100%
scipy-1.2.0 | 17.7 MB | ##################################### | 100%
scikit-learn-0.20.2 | 5.7 MB | ##################################### | 100%
py-xgboost-0.80 | 1.7 MB | ##################################### | 100%
_py-xgboost-mutex-2. | 9 KB | ##################################### | 100%
numpy-base-1.15.4 | 4.2 MB | ##################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
答案在错误消息中。在过去,您或某个进程执行了sudo pip
,这导致/Library/Python/2.7/site-packages/...
下的某些目录具有使您无法访问当前用户的权限。
然后你做了一个依赖于另一件事的pip install whatever
。
所以要修复它,请访问/Library/Python/2.7/site-packages / ...并找到具有root或not-your-user权限的目录,然后删除然后重新安装这些包,或者只强制用户所有权谁应该有权访问。
我用numpy
安装pip install numpy
时遇到了同样的问题。
然后我试了一下
sudo -H pip3 install --upgrade pip
sudo -H pip3 install numpy
它对我很有用。
说明:-H
(HOME)选项与sudo
将HOME环境变量设置为目标用户的主目录(默认情况下为root)。默认情况下,sudo不会修改HOME。
当我试图安装一个包(烧瓶类)时,我得到了同样的错误。我犯了以root身份安装anaconda的错误。我更改了已安装的anaconda文件夹的所有权,我可以成功安装该软件包。
使用带选项-R的命令chown以递归方式更改已安装的anaconda文件夹的所有权
chown -R owner:group /path/to/anaconda
此处所有者是您的用户名,组是组名。
这对我有用:
python3 -m venv env
source ./env/bin/activate
python -m pip install package
(来自Github:https://github.com/googlesamples/assistant-sdk-python/issues/236)
尝试:pip install --upgrade pip --user
。