Python 轻松安装和文件权限
作为前言,我目前正在使用Python 2.7运行OSX 10.9.1 我想使用Python 轻松安装和文件权限,python,macos,bash,permissions,Python,Macos,Bash,Permissions,作为前言,我目前正在使用Python 2.7运行OSX 10.9.1 我想使用easy\u install(在本例中为pip)安装Python软件包。首先,我尝试: 简易安装pip 然后我得到一个错误,说我没有对站点包目录的写访问权。没问题: sudo easy\u安装pip 一切都很好。下面显示了安装pip后的Bash会话: $ pip -bash: /usr/local/bin/pip: Permission denied $ cd /usr/local/bin/pip $ ls -l .
easy\u install
(在本例中为pip
)安装Python软件包。首先,我尝试:
简易安装pip
然后我得到一个错误,说我没有对站点包
目录的写访问权。没问题:
sudo easy\u安装pip
一切都很好。下面显示了安装pip
后的Bash会话:
$ pip
-bash: /usr/local/bin/pip: Permission denied
$ cd /usr/local/bin/pip
$ ls -l
...
-rwx------ 1 root admin 275 Jan 10 11:05 pip
...
$ chmod 754 pip
chmod: Unable to change file mode on pip: Operation not permitted
$ sudo chmod 754 pip
$ pip
Traceback (most recent call last):
File "./pip", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 3007, in <module>
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 728, in require
requirements specified when this environment was created, or False
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 626, in resolve
pkg_resources.DistributionNotFound: pip==1.5
好的,显然我仍然没有使用pip
的权限,因为我没有对归档文件的执行权限。那么:
$ chmod 754 pip-1.5-py2.7.egg
chmod: Unable to change file mode on pip-1.5-py2.7.egg/: Operation not permitted
$ sudo chmod 754 pip-1.5-py2.7.egg
$ pip
Traceback (most recent call last):
File "/usr/local/bin/pip", line 9, in <module>
load_entry_point('pip==1.5', 'console_scripts', 'pip')()
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 378, in load_entry_point
def get_resource_stream(manager, resource_name):
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 2565, in load_entry_point
section = line[1:-1].strip()
ImportError: Entry point ('console_scripts', 'pip') not found
$chmod 754 pip-1.5-py2.7.egg
chmod:无法更改pip-1.5-py2.7.egg/上的文件模式:不允许操作
$sudo chmod 754匹-1.5匹-2.7匹
$pip
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/pip”,第9行,在
加载入口点('pip==1.5','console\u scripts','pip')()
文件“build/bdist.macosx-10.8-intel/egg/pkg_resources.py”,第378行,在加载入口点
def get_资源_流(管理器、资源_名称):
文件“build/bdist.macosx-10.8-intel/egg/pkg_resources.py”,第2565行,在加载入口点
截面=第[1:-1]行。条带()
ImportError:未找到入口点('console_scripts','pip')
我的假设是,所有的权限都被搞砸了,因为我使用了sudo
,而现在我只是在追逐权限。但这可能是错误的。我不记得在升级到OSX 10.9之前有过这个问题
我的问题是:即使我是计算机的管理员,Unix系统是否总是使用
sudo
?有没有一种方法可以让我永久性地更正这个问题,这样我才有权运行已安装的软件包?你认为我的系统中某个地方的设置不正确吗?你的假设是正确的,因为你使用了sudo
,所以所有的权限都被搞砸了。首先,打破使用sudo
来“修复”问题的习惯。对于使用sudo
进行操作,您应该像以root用户身份登录一样进行长期而艰苦的思考。如果你的态度是“没问题:sudo…”,那么你(最终)会受到伤害。每次您使用sudo
时,您都在对OSX开箱即用的方式进行一次更改
接下来,摆脱将所有内容都放在python操作系统版本中的习惯。我建议首先清除您的/usr/local,尽管这可能要求很多
然后brew安装python
-为自己准备一个。很好,你已经做到了
哪个pip
-确保您正在使用刚刚安装在/usr/local中的pip brew;如果没有,请根据需要调整~/.bashrc
启动文件
下一步brew安装virtualenv
和brew安装VirtualEnvrapper
-当您pip安装
某个东西以支持仅影响该项目时,请这样做。当您使用时,将导出PIP\u REQUIRE\u VIRTUALENV=true
添加到您的~/.bashrc
中,这样您就不会忘记并在将来搞砸
现在,了解并开始理解项目的真正依赖关系,停止因不同项目的需求相互干扰而引起的冲突,停止滥用
sudo
将导致您陷入的普遍困境 原因号273不升级到Mavericks…@Thanizer,您是否运行了磁盘实用程序
并修复了权限?这可能是一个好的开始。另外,chmod 754不会剪切它,您需要使用755,并拥有所有者根目录
,组控制盘
。@I'L'I,我只是修复了权限,但没有用。现在我正在使用Python公式进行自制,一切似乎都很好。不过,我还是想知道,如果没有权限问题,为什么我不能使用OSX的原生easy\u install
脚本。回答太棒了。尽管如此,您是否确定brew安装virtualenv
,因为这样做会产生错误-没有名称为“virtualenv”的可用公式。发现了这些类似命名的公式:pyenv virtualenv
?上述答案基于2014年的现实。从那时起,Python的世界发生了很大的变化。这可能会有帮助。
$ chmod 754 pip-1.5-py2.7.egg
chmod: Unable to change file mode on pip-1.5-py2.7.egg/: Operation not permitted
$ sudo chmod 754 pip-1.5-py2.7.egg
$ pip
Traceback (most recent call last):
File "/usr/local/bin/pip", line 9, in <module>
load_entry_point('pip==1.5', 'console_scripts', 'pip')()
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 378, in load_entry_point
def get_resource_stream(manager, resource_name):
File "build/bdist.macosx-10.8-intel/egg/pkg_resources.py", line 2565, in load_entry_point
section = line[1:-1].strip()
ImportError: Entry point ('console_scripts', 'pip') not found