无法在 Mac OS El Capitan 上安装 nltk
Unable to install nltk on Mac OS El Capitan
我按照 nltk 文档的建议做了 sudo pip install -U nltk
。
但是,我得到以下输出:
Collecting nltk
Downloading nltk-3.0.5.tar.gz (1.0MB)
100% |████████████████████████████████| 1.0MB 516kB/s
Collecting six>=1.9.0 (from nltk)
Downloading six-1.9.0-py2.py3-none-any.whl
Installing collected packages: six, nltk
Found existing installation: six 1.4.1
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 311, in run
root=options.root_path,
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 640, in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 716, in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 315, in renames
shutil.move(old, new)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-7dp3on-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
基本上无法将六从1.4.1升级到1.9.0。我尝试单独执行此操作,但出现了同样的错误。
我提到 El Capitan 是因为有些人在 El Capitan 上安装其他 python 时遇到问题,我想知道这是不是因为这个。
有谁知道如何解决这个问题?
我遇到了同样的问题。
我使用 brew 来管理包。所以首先你必须 运行
brew doctor
它将列出您的设置问题,并进行更正。在我的情况下 /usr/local 不可写,所以我必须修复它
然后运行
brew reinstall python
这解决了我的问题,然后我就可以使用 pip 安装软件包了
以下是我解决问题的方法:
首先,安装Xcode CLI
:
xcode-select --install
然后重新安装Python
:
sudo brew reinstall python
最后,安装nltk
:
sudo pip install -U nltk
希望对您有所帮助:)
我知道那里有很多 'brew boosters',但您不需要为如此基本的东西使用另一个 python。如果 pip
在 /System 中找到依赖项,正如他们在南方公园中所说的那样,“你将度过一段糟糕的时光”。如果您不需要在系统范围内进行此更改,您可以 pip install --user <package>
并将 $HOME/Library/Python/2.7/bin
添加到 shell 路径(通过 ~/.bash_profile
等)。
如果您已经创建了 /usr/local 目录,那么 运行 在终端中执行此命令:
sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
来自
http://digitizor.com/2015/10/01/fix-homebrew-permissions-osx-el-capitan/
系统Python无法通过pip升级或更改,因为全新的系统完整性保护机制禁止对系统目录的所有更改,甚至'root'。您可以通过其他地方可用的说明(例如 http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/ )从恢复环境中禁用 SIP,但更好的解决方案是使用 --user 参数安装到您的本地目录:
pip install --user nltk
这会将 nltk 留在您的本地主目录中。
> python
>>> import nltk
>>> nltk
>>> <module 'nltk' from '/Users/yourusername/Library/Python/2.7/lib/python/site-packages/nltk/__init__.pyc'>
很明显,如果您尝试安装全局可访问的东西,但这是行不通的,但如果您要做的只是安装您将要从自己的用户 ID 运行 安装的东西它工作正常。
好吧'然后:
简单简单的简单真理是此处提出的其他几个答案的混合答案:
- 系统完整性保护限制以根用户身份访问 /Library Mac OS X 系统目录根目录。
- 您甚至不需要 sudo 或重新安装系统软件包等
- pip install --user nltk 有效,"pip install -U ..." 无效
- pip install --user 使用可访问的 $HOME/Library/Python/2.7/bin 目录...您可以将其添加到 shell 路径(通过 ~/.bash_profile,等)。
- 这比安装多个 python 和需要 brew 等要优雅得多
阿门
这两个结果产生了六个版本 1.41:
pip install --ignore-installed six
pip install awsebcli --upgrade --ignore-installed six
我认为 brew 解决方法是有意义的。如果 Apple 需要自己的 El Capitan 副本 Python,它可以拥有它。我的现在在这里:/usr/local/bin/python
我按照 nltk 文档的建议做了 sudo pip install -U nltk
。
但是,我得到以下输出:
Collecting nltk
Downloading nltk-3.0.5.tar.gz (1.0MB)
100% |████████████████████████████████| 1.0MB 516kB/s
Collecting six>=1.9.0 (from nltk)
Downloading six-1.9.0-py2.py3-none-any.whl
Installing collected packages: six, nltk
Found existing installation: six 1.4.1
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 311, in run
root=options.root_path,
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 640, in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 716, in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 315, in renames
shutil.move(old, new)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-7dp3on-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
基本上无法将六从1.4.1升级到1.9.0。我尝试单独执行此操作,但出现了同样的错误。
我提到 El Capitan 是因为有些人在 El Capitan 上安装其他 python 时遇到问题,我想知道这是不是因为这个。
有谁知道如何解决这个问题?
我遇到了同样的问题。
我使用 brew 来管理包。所以首先你必须 运行
brew doctor
它将列出您的设置问题,并进行更正。在我的情况下 /usr/local 不可写,所以我必须修复它
然后运行
brew reinstall python
这解决了我的问题,然后我就可以使用 pip 安装软件包了
以下是我解决问题的方法:
首先,安装Xcode CLI
:
xcode-select --install
然后重新安装Python
:
sudo brew reinstall python
最后,安装nltk
:
sudo pip install -U nltk
希望对您有所帮助:)
我知道那里有很多 'brew boosters',但您不需要为如此基本的东西使用另一个 python。如果 pip
在 /System 中找到依赖项,正如他们在南方公园中所说的那样,“你将度过一段糟糕的时光”。如果您不需要在系统范围内进行此更改,您可以 pip install --user <package>
并将 $HOME/Library/Python/2.7/bin
添加到 shell 路径(通过 ~/.bash_profile
等)。
如果您已经创建了 /usr/local 目录,那么 运行 在终端中执行此命令:
sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
来自 http://digitizor.com/2015/10/01/fix-homebrew-permissions-osx-el-capitan/
系统Python无法通过pip升级或更改,因为全新的系统完整性保护机制禁止对系统目录的所有更改,甚至'root'。您可以通过其他地方可用的说明(例如 http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/ )从恢复环境中禁用 SIP,但更好的解决方案是使用 --user 参数安装到您的本地目录:
pip install --user nltk
这会将 nltk 留在您的本地主目录中。
> python
>>> import nltk
>>> nltk
>>> <module 'nltk' from '/Users/yourusername/Library/Python/2.7/lib/python/site-packages/nltk/__init__.pyc'>
很明显,如果您尝试安装全局可访问的东西,但这是行不通的,但如果您要做的只是安装您将要从自己的用户 ID 运行 安装的东西它工作正常。
好吧'然后:
简单简单的简单真理是此处提出的其他几个答案的混合答案:
- 系统完整性保护限制以根用户身份访问 /Library Mac OS X 系统目录根目录。
- 您甚至不需要 sudo 或重新安装系统软件包等
- pip install --user nltk 有效,"pip install -U ..." 无效
- pip install --user 使用可访问的 $HOME/Library/Python/2.7/bin 目录...您可以将其添加到 shell 路径(通过 ~/.bash_profile,等)。
- 这比安装多个 python 和需要 brew 等要优雅得多
阿门
这两个结果产生了六个版本 1.41:
pip install --ignore-installed six
pip install awsebcli --upgrade --ignore-installed six
我认为 brew 解决方法是有意义的。如果 Apple 需要自己的 El Capitan 副本 Python,它可以拥有它。我的现在在这里:/usr/local/bin/python