首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python试图将所有东西安装到os x上的/lib中。

Python试图将所有东西安装到os x上的/lib中。
EN

Stack Overflow用户
提问于 2014-11-19 14:00:06
回答 1查看 628关注 0票数 0

我认为路径/lib存储在我的python不应该存在的地方。

它是从我在使用pip安装python模块时遇到的问题开始的。Pip似乎将所有东西都安装到/lib/python2.7/site-- python找不到的包中。

Sidenote: pip卸载也找不到/lib中的包,但pip卸载是pip安装的地方。

我试过:

代码语言:javascript
复制
which pip
$/usr/bin/pip
$which python
/usr/bin/python

我决定卸载pip,但是

代码语言:javascript
复制
$ easy_install uninstall pip
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

[Errno 13] Permission denied: '/lib'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

/lib/python2.7/site-packages/

看起来,即使在我简单的安装中,'/lib‘位置也被使用了。我谷歌了一下,决定重新安装轻松安装。我把它拿走了:

代码语言:javascript
复制
$sudo rm /usr/local/bin/easy_install

并试图再次安装它:

代码语言:javascript
复制
$ sudo curl https://bootstrap.pypa.io/ez_setup.py -o - | python
Checking .pth file support in /lib/python2.7/site-packages/
error: can't create or remove files in install directory

因此,我的问题基本上是,我希望我的python安装尽可能干净,并且这个/lib位置存储在某个地方。

一些附带信息

  • 我现在对python的文件结构越来越熟悉了,但是我以前对它知之甚少。我在安装python包时也遇到了很多问题,所以我通过教程使用了许多不同的python版本。(通过酿造,树冠,蟒蛇,ipython)。我卸载其中的大多数,因为我只是想要一个干净的安装尽可能。(我曾经尝试卸载一个站点包,发现它同时存储在4个不同的位置!)
  • $哪个python /usr/bin/python

  • 我现在的大部分站点包都安装在: /usr/local/lib/python2.7/site-packages /Users/myusersname/Library/Python/2.7/lib/python/site-packages

  • 空的: $ echo $PYTHONPATH

代码语言:javascript
复制
- OS-X 10.9.5

希望你们能帮我!

安装方便点

我想让一切尽可能干净,所以我卸载了我的自制版本python。

编辑

Python ,所以我卸载了所有的版本,系统版本除外(/usr/bin/ python )。现在我尝试通过自制安装python (/usr/local/bin/python确实链接到地窖)。

当我试着跑pip时:

代码语言:javascript
复制
$which pip
/usr/local/pip

$pip
Traceback (most recent call last):
 File "/usr/local/bin/pip", line 5, in <module>
 from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
 File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.5.6

当我试图

代码语言:javascript
复制
sudo easy_install -U pip
TEST FAILED: /lib/python2.7/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH

Python来自python.org,我从网站上卸载了自制python,并使用安装程序安装了python。我检查了/usr/local/bin/python与这个python的链接。

这个python不附带pip或易于安装。所以我运行setuptools:

代码语言:javascript
复制
$ sudo python ez_setup.py 
Extracting in /tmp/tmpR80Ydp
Now working in /tmp/tmpR80Ydp/setuptools-7.0
Installing Setuptools
running install
Checking .pth file support in /lib/python2.7/site-packages/
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -E -c pass
TEST FAILED: /lib/python2.7/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from.  The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
/lib/python2.7/site-packages/

这就是我一直在犯的错误。这是非常持久的,我希望你们能帮助我。我在这里尝试了一些解决方案:

但什么都帮不上忙。

设置PYTHONPATH,或与sudo一起跑,也没有什么帮助。

代码语言:javascript
复制
export PYTHONPATH='/Library/Python/2.7/site-packages'
EN

回答 1

Stack Overflow用户

发布于 2014-11-21 19:12:58

如果您希望尽可能干净地安装python,您应该考虑使用虚拟环境。

代码语言:javascript
复制
$ sudo pip install virtualenv
$ pyvenv env                   # create a virtual environment
$ source env/bin/activate      # activate the virtual environment
(env) $ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python   # install pip in the virtualenv

这段代码适用于python3.4,但对于python2.7应该是类似的。然后,您可以像通常那样安装软件包:

代码语言:javascript
复制
(env) $ pip install [package name]

以这种方式安装的所有软件包都将保存在"env“目录中。如果你想在虚拟环境中运行一个程序,你必须首先激活它。当你做完,你可以简单地停用它。

代码语言:javascript
复制
(env) $ deactivate
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27018760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档