当我使用easy_install或buildout安装PIL时,它会以这种方式安装,我必须执行'import Image',而不是'来自PIL import Image'.
但是,如果我做"apt-get install python-imaging"或使用"pip -E test_pil install PIL",一切正常.
以下是我尝试使用virtualenv安装PIL的示例:
# virtualenv --no-site-packages test_pil
# test_pil/bin/easy_install PIL
# test_pil/bin/python
Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL
Run Code Online (Sandbox Code Playgroud)
我明白了,easy_install将PIL打包到Egg中,而PIP则没有.与buildbot相同,它使用鸡蛋.
如何使用easy_install或buildout正确安装PIL?
在我的setup.py文件中,我已经指定了运行我的项目所需的一些库:
setup(
# ...
install_requires = [
'django-pipeline',
'south'
]
)
Run Code Online (Sandbox Code Playgroud)
如何指定这些库的必需版本?
升级到Django 1.8(使用zc.buildout)并运行syncdb或migrate时,我收到以下消息:
django.db.utils.ProgrammingError: relation "auth_user" does not exist
我的一个模型包含django.contrib.auth.models.User:
user = models.ForeignKey(
User, related_name='%(app_label)s_%(class)s_user',
blank=True, null=True, editable=False
)
Run Code Online (Sandbox Code Playgroud)
降级到Django 1.7可以消除错误.我是否必须在Django 1.8中以不同方式包含User对象?
我想使用python plone-devstart.py工具创建一个新的plone环境.我有一个引导程序错误.所以我在项目目录中使用了命令bin/python bootstrap.py -d.它(bin/python bootstrap.py -d命令)之前工作正常但是现在我得到了一个错误
oomsys@oomsysmob-6:~/demobrun$ bin/python bootstrap.py -d
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-
0.6.49.tar.gz
Extracting in /tmp/tmpDqVwYA
Now working in /tmp/tmpDqVwYA/distribute-0.6.49
Building a Distribute egg in /tmp/tmpv4Bzyv
/tmp/tmpv4Bzyv/distribute-0.6.49-py2.7.egg
Traceback (most recent call last):
File "bootstrap.py", line 118, in <module>
ws.require('zc.buildout' + VERSION)
File "build/bdist.linux-i686/egg/pkg_resources.py", line 698, in require
File "build/bdist.linux-i686/egg/pkg_resources.py", line 600, in resolve
pkg_resources.VersionConflict: (setuptools 0.6c11 (/home/oomsys/demobrun
/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg),
Requirement.parse('setuptools>=0.7'))
Run Code Online (Sandbox Code Playgroud) 上次我不得不担心安装Python软件包是两年前与Enthought,NumPy和MayaVi2合作的.这种经历给了我挥之不去的噩梦,这些噩梦与在非标准位置($HOME/usr/local2.6/例如)中安装和更新Python包的古怪行为有关.
无论如何,我的工作让我回到安装各种Python包.该Cheeseshop上教程中提到的distutils和EasyInstall除了扩建!我很难找到一个比较这些(和其他)PyPi安装工具的地方,所以我希望进入StackOverflow社区: 每个安装工具的优点和缺点是什么?
我正在使用buildout自动下载和设置我的Plone安装的许多依赖项.buildout或多或少使用easy_install下载并安装一堆Python egg.这通常有效,但如果无法下载任何依赖项,或者我希望buildout找到不适合pypi的内部包,则它不起作用.如何设置我自己的本地版本的pypi来自动镜像我需要的软件包?对于使用pypi作为元数据但不使用代码的软件包,它仍然依赖于第三方服务器吗?
我正在搞乱buildout和virtualenv的组合来在python中设置一个孤立的开发环境,允许进行可重现的构建.
有一个buildout的配方,让你将virtualenv集成到buildout中:
tl.buildout_virtual_python
Run Code Online (Sandbox Code Playgroud)
有了这个,我的buildout.cfg看起来像这样:
[buildout]
develop = .
parts = script
virtualpython
[virtualpython]
recipe = tl.buildout_virtual_python
headers = true
executable-name = vp
site-packages = false
[script]
recipe = zc.recipe.egg:scripts
eggs = foo
python = virtualpython
Run Code Online (Sandbox Code Playgroud)
这将在./bin/中部署两个可执行文件:
vp
script
Run Code Online (Sandbox Code Playgroud)
当我执行vp时,我按预期得到了一个交互式,孤立的python对话框(无法从系统加载任何包).我现在所期待的是,如果我跑了
./bin/script
Run Code Online (Sandbox Code Playgroud)
使用了孤立的python解释器.但它没有,它不是孤立的"vp"(意思是我可以从系统级别导入库).但是我可以运行:
./bin/vp ./bin/script
Run Code Online (Sandbox Code Playgroud)
哪个会在我希望的孤立环境中运行脚本.但是必须有一种方法来指定这样做而不用链接命令,否则buildout只能解决我希望的一半问题:)
谢谢你的帮助!帕特里克
我正在尝试减少我们网站中包含的脚本数量,并使用buildout来处理部署.有没有人成功实现了一个使用buildout组合和压缩脚本的方法?
我试图通过本教程掌握更多的构建,但与教程不同,它似乎是演示幻灯片的剪切和粘贴.我没有清楚地知道buildout的目的是什么,以及它如何通过scons和setuptools定位自己.您是否愿意提供有关这些问题的详细信息?
谢谢!
我有几个python应用程序包含应该打包并部署为RPM的脚本/模块.
更棘手的是每个应用程序应该与所有python模块依赖项一起分发,并且这些应该优先于系统安装的任何应用程序使用.
其中一些RPM的目标主机具有有限的网络访问权限,因此RPM应包含运行应用程序所需的所有内容,而不是在部署时下载任何内容.
我已经看过包装和分发virtualenv,但重新定位virtualenv似乎并没有得到很好的支持.
我查看了zc.buildout,但发现文档缺乏.我可以看到如何在开发期间下载依赖项,而不是如何将它们作为更大的应用程序的一部分进行分发.不同的应用程序可能需要同一模块的不同版本,因此不应在系统范围内安装这些版本.
另一个痛点是应用程序中的任何python脚本都需要修改为在开发期间和部署后使用不同的sys.path,我无法看到明显的方法.
有关如何最好地实现这一点的建议吗?从开发人员的角度来看,工作流程的理想总结如下所示:
然后,最终的RPM应该可以在没有网络访问权限的主机上安装和运行,并且只安装了python解释器.
buildout ×10
python ×10
easy-install ×3
virtualenv ×2
deployment ×1
distribute ×1
distutils ×1
django ×1
django-1.8 ×1
javascript ×1
jscompress ×1
packaging ×1
pip ×1
plone ×1
resources ×1
rpm ×1
setuptools ×1