ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

凌乱的Python安装? (OS X)

2019-06-09 11:45:29  阅读:254  来源: 互联网

标签:python python-2-7 virtualenv python-3-4 macos


我是Python和OS X终端的完全初学者,我试图为Python 2.7.3和Python 3.4安装一些软件包.

在安装之后,我无法使用机械化来兼容Python 2或Python 3.我明白了:

>>> from mechanize import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/XXX/Desktop/mechanize-0.2.5/mechanize/__init__.py", line 119, in <module>
    from _version import __version__
ImportError: No module named '_version'

在试图理解为什么它在我的桌面上搜索模块位置(我下载源代码并从中运行setup.py)时,我想知道我的Python安装是否混乱.

我在这三个不同的位置找到了Python的东西,我知道:

Macintosh HD/Library/Frameworks/Python.framework/3.4/ – [This is where Python 3 and its site-packages are stored]

Macintosh HD/System/Library/Frameworks/Python.framework/Versions/2.7/ – [I can’t find any site-packages here]

Macintosh HD/Library/Python/2.7/ – [Only site-packages in this folder, nothing else]

最后一个放错了地方吗?

我或许应该提一下,我默认使用终端中的非管理员/非sudo用户.所以当我安装软件包时,我会:

su -l admin
sudo easy_install xxx or sudo python3 setup.py install

理想情况下,我想清理我的Python安装,删除我安装的软件包,并用virtualenv虚拟地放置所有内容.

解决方法:

OS X预装了Python.究竟哪个版本取决于您的OS X版本(例如,10.10附带2.6和2.7,10.8附带2.5-2.7加上部分安装2.3,而10.3附带2.3).

它们安装在/System/Library/Frameworks/Python.framework/Versions/2.*中,它们的站点包在/Library/Python/2.*中. (他们在不同地方的原因是/ System / Library只能由OS安装/升级编写.)

您无法在不破坏操作系统的情况下删除预安装的Python版本(即使您可以,也可以在下次操作系统更新时重新安装).

但是如果你只打算使用Python 3.4,你可以忽略Apple给你的2.x版本.来自python.org或其他主要来源(如Homebrew)的至少Python 3.2的所有版本都将遵循PEP 394,这意味着您将获得python3,pip3等命令,这些命令不会与Apple安装的python等命令发生冲突.

此外,您提到在您的问题中使用虚拟环境.这是一个好主意.无论您使用的是stdlib的venv还是第三方的virtualenv,您都可以创建单独的Python 3.4环境.当您在活动虚拟环境中时,其pip将安装到其站点包而不是全局包中.如果你真的搞砸了一个环境,只需停用rm -rf path / to / environment并重新创建它就可以很容易地清理它.

另外,您几乎不想使用easy_install.如果您安装Python 3.4,它会附带pip,因此为其安装软件包的正确方法是:

[sudo] pip3 install xxx

即使你有一个setup.py,除非它是非pip兼容的(现在大多数都不兼容,但有一些不是),你可能想要使用它而不是手动运行setup.py,如下所示:

[sudo] pip3 install .

此外,python.org安装程序还可以选择使site-packages目录可写入组.如果你已经启用了它,你不应该使用sudo,因为那样你最终会得到一个可写和不可写混合的站点包,卸载或升级将成为一场噩梦. (使用此选项的一个好处是,从不使用sudo意味着你永远不会意外地为Apple的Python 2.7安装任何东西,因为如果你尝试过,你会收到权限错误.但缺点很明显.这就是为什么它是一个选项.)

那么,你怎么从这里到达那里?

>您可能想要点名列表>要求或pip冻结>要求获取已安装的所有软件包的列表. (前者更易于阅读,后者可以直接与pip install -r要求一起使用,以便在清理完后自动重新安装相同的软件包.)如果你想用2.7和3.4,你可能想要这样做为这两个人安装了pip并让事情变得混乱.
>卸载Python 3.4.
>卸载为Apple的Python 2.7安装的所有站点包. (你已经知道它们在哪里,所以,即使你没有用pip安装它们,你也可以手动卸载它们.请注意它们可能在/usr/local/bin中留下了像ipython或类似的脚本.)
>从python.org安装最新的Python 3.4.
> [sudo] pip3安装全局所需的所有软件包. (这可能一点也不,或者只是虚拟.)
>使用venv或virtualenv为要保持独立的每个项目创建虚拟环境,并使用其pip而不是全局pip来为该特定环境安装软件包.

标签:python,python-2-7,virtualenv,python-3-4,macos
来源: https://codeday.me/bug/20190609/1204746.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有