我开始学蟒蛇了,我很喜欢它。我主要在Mac和Linux上工作。我发现在Linux上(主要是Ubuntu9.04),当我使用apt安装python模块时,它工作得很好。我可以毫不费力地把它进口。
在Mac上,我习惯于使用Macports来安装所有的Unixy设备。但是,我发现我安装的大多数python模块都没有被python看到。我花了一些时间来处理路径设置和使用python_select。没有什么是真正有效的,在这一点上,我并不是真正理解,而是我只是四处闲逛。
我的印象是,Macports并不是普遍喜欢管理python模块的。我想用一种更“接受”的方法重新开始(如果这是正确的话)。
所以,我想知道,method开发人员用来管理他们的模块的方法是什么?
奖金问题:
你是使用苹果的python还是其他版本的?您是从源代码编译所有东西还是有一个运行良好的软件包管理器(Fink?)。
发布于 2011-08-28 09:13:47
你的问题已经三年了,其他答案中没有涉及到一些细节:
我认识的大多数人都使用HomeBrew或MacPorts,我更喜欢MacPorts,因为它是默认的Most环境和开发设置。只需移出您的/opt文件夹并使用普通用户Python环境测试您的包即可。
MacPorts只能在Mac中移植,但是使用easy_install或pip,您将了解如何在任何平台(Win/Mac/Linux/Bsd.)中设置您的环境。此外,它将永远是更最新的和更多的软件包。
我亲自让MacPorts处理我的Python模块,以便随时更新所有内容。与任何其他高级包管理器(即apt-get)一样,对于具有大量二进制依赖项的模块的繁重提升来说,它要好得多。我不可能用easy_install或pip构建Qt绑定(Qt绑定,PySide)。Qt非常庞大,需要大量编译。只要您想要一个需要非Python程序使用的库的Python包,就尽量避免使用easy_install或pip。
在某个时候,您会发现MacPorts中缺少一些包。我不相信MacPorts会给你整个CheeseShop。例如,最近我需要灵丹妙药模块,但是MacPorts只提供py25-长生不老药和py26-长生不老药,没有py27版本。在这种情况下,你有:
pip-2.7安装--用户灵丹妙药
(确保始终键入pip-(版本))
这将在您的家庭dir中构建一个额外的Python库。是的,Python将使用多个库位置:一个由MacPorts控制,另一个由用户本地位置控制,用于处理MacPorts中丢失的所有内容。
现在请注意,比起easy_install,我更喜欢pip。您应该避免使用setuptools和easy_install,这是很好的理由。这是一个好解释,我试着远离它们。pip的一个非常有用的特性是提供一个清单,列出安装在MacPorts、easy_install和pip本身中的所有模块(随它们的版本):
pip-2.7冻结
如果您已经开始使用easy_install,不要担心,pip可以识别easy_install已经完成的所有操作,甚至可以升级它所安装的包。
如果您是开发人员,请密切关注维塔列夫,以控制不同的设置和模块版本的组合。其他答案已经提到了,到目前为止还没有提到的是毒理模块,这是一个用于测试包在不同版本下正确安装的工具。
虽然我通常不存在版本冲突,但我希望使用虚拟环境来设置一个干净的环境,并清楚地了解我的包依赖关系。这样,我就不会忘记setup.py中的任何依赖项。
如果您选择MacPorts,请注意同一包的多个版本不再被选中,就像旧的Debian风格一样,有一个额外的python_select包(为了兼容性,它仍然在那里)。现在,您可以使用select命令来选择将使用哪个Python版本(甚至可以选择Apple安装的版本):
$ port select python
Available versions for python:
none
python25-apple
python26-apple
python27 (active)
python27-apple
python32
$ port select python python32在上面加上毒物,你的程序应该是可移植的。
https://stackoverflow.com/questions/1213690
复制相似问题