';sudo pip安装-e.&x27;更新/usr/local/lib下的easy-install.pth,python可以';不进口

';sudo pip安装-e.&x27;更新/usr/local/lib下的easy-install.pth,python可以';不进口,python,macos,python-2.7,pip,easy-install,Python,Macos,Python 2.7,Pip,Easy Install,我在MacOs Sierra上 我遇到了一个问题,使用sudo pip install-e安装我自己的包会导致/usr/local/lib/python2.7/site packages/easy install.pth被更新为指向包,但在python启动时显然找不到 这闻起来像是与我在一段时间前将/usr/local/bin/python链接到/usr/bin/python以解决一些我再也记不起的其他版本冲突类型问题有关 有没有一种明智的方法来解决这个问题,比如在site.py中编辑一些东西

我在MacOs Sierra上

我遇到了一个问题,使用
sudo pip install-e
安装我自己的包会导致
/usr/local/lib/python2.7/site packages/easy install.pth
被更新为指向包,但在python启动时显然找不到

这闻起来像是与我在一段时间前将
/usr/local/bin/python
链接到
/usr/bin/python
以解决一些我再也记不起的其他版本冲突类型问题有关

有没有一种明智的方法来解决这个问题,比如在
site.py
中编辑一些东西


我不确定这里还需要什么额外的细节。这里有大量来自系统的相关命令输出

pip安装似乎成功了:

~$ cd workspace/mypackage
mypackage$ sudo -H pip install -e .

Obtaining file:///Users/me/workspace/mypackage

     ...[snip]...

  Running setup.py develop for mypackage
Successfully installed boto3-1.4.4 botocore-1.5.46 mypackage docutils-0.13.1 functools32-3.2.3.post2 futures-3.1.1 jmespath-0.9.2 jsonschema-2.6.0 python-dateutil-2.6.0 s3transfer-0.1.10

mypackage$ cd /tmp
tmp$ python -c 'import mypackage'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named mypackage
python的
-Cell
-ed版本确实找到了安装:

$ /usr/local/bin/python2.7-cellar  -c 'import mypackage; print mypackage.__file__'
/usr/local/lib/python2.7/site-packages/mypackage/__init__.pyc
mypackage$ sudo -H pip install .
Processing /Users/me/workspace/mypackage
Installing collected packages: mypackage
  Running setup.py install for mypackage ... done
Successfully installed mypackage-1.0.0

mypackage$ cd /tmp
tmp$ python -c 'import mypackage; print mypackage.__file__'
/usr/local/lib/python2.7/site-packages/mypackage/__init__.pyc
安装更新的
easy install.pth
位于
/usr/local/lib

tmp$ sudo find /usr -name easy-install.pth
/usr/local/lib/python2.7/site-packages/easy-install.pth

tmp$ cat /usr/local/lib/python2.7/site-packages/easy-install.pth
/Users/me/workspace/mypackage
一些
pip
详细信息:

tmp$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)

tmp$ which pip
/usr/local/bin/pip

ls -l /usr/local/bin/pip
lrwxr-xr-x  1 me  admin  31 Apr 22 21:27 /usr/local/bin/pip -> ../Cellar/python/2.7.13/bin/pip

tmp$ sudo find /usr -name pip
/usr/local/bin/pip
/usr/local/Cellar/ansible/2.3.0.0/libexec/bin/pip
/usr/local/Cellar/ansible/2.3.0.0/libexec/lib/python2.7/site-packages/pip
/usr/local/Cellar/python/2.7.13/bin/pip
/usr/local/Cellar/python/2.7.13/libexec/pip
/usr/local/Cellar/python/2.7.13/libexec/pip/build/lib/pip
/usr/local/Cellar/python/2.7.13/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

tmp$ ls -ld /usr/local/lib/python2.7/site-packages/pip
drwxr-xr-x  34 me  admin  1156 Apr 22 21:27 /usr/local/lib/python2.7/site-packages/pip
没有与/usr/lib/python2.7下的pip或easy-install.pth对应的站点包:

$ ls -ld /usr/lib/python2.7
lrwxr-xr-x  1 root  wheel  75 Oct 21  2016 /usr/lib/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

tmp$ ls /usr/lib/python2.7/site*
/usr/lib/python2.7/site.py  /usr/lib/python2.7/site.pyc /usr/lib/python2.7/site.pyo
我的
系统路径

tmp$ python -c 'import sys; print "\n".join(sys.path)'

/usr/local/Cellar/apache-spark/2.1.0/libexec/python
/usr/local/lib/python2.7
/usr/local/lib/python2.7/site-packages
/usr/lib/python27.zip
/usr/lib/python2.7
/usr/lib/python2.7/plat-darwin
/usr/lib/python2.7/plat-mac
/usr/lib/python2.7/plat-mac/lib-scriptpackages
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/Library/Python/2.7/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg
在虚拟电视中,所有这些都是正常的:

mypackage$ mkvirtualenv testpip
    ...[snip]...
(testpip) mypackage$ sudo -H pip install -e .
Obtaining file:///Users/me/workspace/mypackage
Installing collected packages: mypackage
  Running setup.py develop for mypackage
Successfully installed mypackage

(testpip) mypackage$ ls ~/.virtualenvs/testpip/lib/python2.7/site-packages/mypackage.egg-link
/Users/me/.virtualenvs/testpip/lib/python2.7/site-packages/mypackage.egg-link

(testpip) mypackage$ cd /tmp
(testpip) tmp$ python -c 'import mypackage; print mypackage.__file__'
/Users/me/workspace/mypackage/mypackage/__init__.pyc
…或在执行不可编辑的安装时:

$ /usr/local/bin/python2.7-cellar  -c 'import mypackage; print mypackage.__file__'
/usr/local/lib/python2.7/site-packages/mypackage/__init__.pyc
mypackage$ sudo -H pip install .
Processing /Users/me/workspace/mypackage
Installing collected packages: mypackage
  Running setup.py install for mypackage ... done
Successfully installed mypackage-1.0.0

mypackage$ cd /tmp
tmp$ python -c 'import mypackage; print mypackage.__file__'
/usr/local/lib/python2.7/site-packages/mypackage/__init__.pyc

在上一个示例中,输出显示成功安装了argus-tools-1.0.0。但是你不是想安装的
mypackage
?同样,在virtualenv中一切都很好,那么为什么不坚持这个解决方案呢?您可能应该在一开始就使用virtualenv,然后再乱搞到其他python版本的符号链接。您可能想看看:哎呀,argus工具来自原始案例,我在确定特定的包不是问题所在后对其进行了泛化,但错过了那个。固定的。是的,坚持使用virtualenv可以解决这个问题,但现在我在这里,我想了解引擎盖下发生了什么。:)此外,这可能最终部署在virtualenv不可用的环境中(尽管MacOs上不会出现这种情况,所以我相信这个问题也不会出现)