Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 轻松安装和文件权限_Python_Macos_Bash_Permissions - Fatal编程技术网

Python 轻松安装和文件权限

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 .

作为前言,我目前正在使用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

...
-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