问题标签 [egg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 将 python 库/应用程序打包为 .egg 文件有什么好处?
我已经阅读了一些关于 .egg 文件的内容,并且在我的 lib 目录中注意到了它们,但是作为开发人员使用的优点/缺点是什么?
python - 如何将 python 程序转换为 .egg 文件?
如何将 python 程序转换为 .egg 文件?
python - Python 代码组织问题:Eggs + Packages + Buildout + Unit Tests + SVN
我有几个共享通用模块的 python 项目。直到现在,我一直在……咳咳……保留公共代码的多个副本并手动同步。但我显然更愿意做其他事情。
现在在我看来,好像 zc.Buildout 可能是我需要的。我想我应该做的是将系统的每个可重用组件放入一个单独的鸡蛋中,然后使用 buildout 将它们组装成项目。
我还认为对于任何特定模块,我应该将单元测试放入单独的包或鸡蛋中,这样我就不会在每个项目中安装组件的单元测试副本。我只想在开发我的库的地方进行单元测试,而不是在刚刚使用它的地方进行单元测试。
所以也许我想要这样的东西
等等
其中 app1 和 app2 都是具有自己的代码和测试的独立应用程序,但也包含并使用 lib1 和 lib2。而 lib1/test、lib1/code、lib2/test、lib2code、app1、app2 是独立的鸡蛋。这听起来对吗?
然而,我现在很困惑。我假设当我开发 app1 时,我希望 buildout 将 lib1、lib2 和 app1 的副本拉到单独的工作目录中,而不是将这些库的副本直接放在 app1 下。但这如何与我的 SVN 源代码控制一起使用?如果工作目录是使用 buildout 动态构建的,它不能是一个实时 SVN 目录,我可以从中将更改检查回存储库吗?
我是否误解了 buildout 的使用方式?我会更好地采用完全不同的方法吗?你如何在项目之间混合源代码控制和模块重用?
更新:感谢目前已回答此问题的两个人。我正在对此进行更多实验。
python - Python 包和 egg-info 目录
有人可以解释一下 egg-info 目录是如何与它们各自的模块相关联的吗?例如,我有以下内容:
我假设 egg-info 目录是为了让 setuptools (easy_install) 可以看到相应的模块,对吧?如果是这样,setuptools 如何将 egg-info 目录绑定到模块目录?
假设我走在正确的轨道上,并且为了举例......如果我想让我的现有包对 setuptools 可见,我可以将模块目录和 egg-info 目录符号链接到站点 -包目录?我自己会尝试这个,但我不确定如何测试该包是否对 setuptools 可见。如果您还可以告诉我如何测试,则可以加分:)
我试图理解这一切的主要原因是因为我想将我的一些模块符号链接到站点包中,以便我可以对它们进行更改并使使用它们的脚本可以看到更改,而无需重新安装每次更改后来自 PyPI 的鸡蛋。
python - apache user can not write to .python-eggs
I have read that I need to set the PYTHON_EGG_CACHE
environment variable, or install the python library as an uncompressed .egg
Which do you suggest?
python - 将 MySQLdb (for python) 安装为非压缩的 egg
安装说明如下:
这给了我一个 .egg 文件。如何告诉安装将文件转储为普通的未压缩库?
谢谢!
python - 如何在 Windows 中安装没有 easy_install 的 .egg 文件?
我有 Python 2.6,我想安装 easy _ install 模块。问题是python 2.6的easy_install唯一可用的安装包是.egg文件!我该怎么办?
django - 如何将 django 应用服务器部署为一个鸡蛋,在 fastcgi 后面运行?
我想在 apache/fastcgi 后面运行一个 django appserver。没问题,django 开箱即用。
我希望这个 appserver 可以通过 setuptools 进行部署。也就是我把它做成鸡蛋,用easy_install安装。这部分我也可以处理,即使 setuptools 不是 django appserver 的标准补充。
但我想不通的是 dispatch.fcgi 是如何实际调用这个 my_app.egg 来“启动”服务器进程的。有没有人曾经在这个配置中运行过?
python - Easy_install 缓存下载的文件
有没有办法配置 easy_install 以避免在安装失败时再次下载文件?
python - 如何在不安装的情况下将 Python 扩展模块打包为可加载的蛋?
我正在修改我们的构建脚本以基于出色的 Waf 工具(我确实使用 SCons 很长时间了,但它太慢了) 。
无论如何,我遇到了以下情况,我找不到解决办法:
- 我有一个依赖于许多先前构建的 egg 文件的产品。
- 我正在尝试使用PyInstaller打包产品作为构建过程的一部分。
- 我首先构建依赖项。
- 接下来我要运行 PyInstaller 来打包依赖于我构建的鸡蛋的产品。我需要 PyInstaller 能够在打包过程中加载这些 egg 文件。
这听起来很简单:您计算出PYTHONPATH
应该是什么,构建sys.environ
正确设置变量的副本,然后使用subprocess.Popen
传递先前配置的环境作为 env 参数来调用 PyInstaller 脚本。
问题是,PYTHONPATH
如果您添加的鸡蛋是打包为 zipsafe 的扩展模块,那么单独设置似乎是不够的。在这种情况下,事实证明嵌入式库无法导入。
如果我解压缩鸡蛋(将目录重命名为 .egg),我可以在没有进一步设置的情况下导入它们,但在这种情况下这不是我想要的。
我还可以通过执行以下操作从子外壳中导入鸡蛋:
- 设置
PYTHONPATH
为包含您要导入的鸡蛋的目录(不是鸡蛋本身的路径) - 加载一个 python shell 并使用
pkg_resources.require
它来定位鸡蛋。
完成此操作后,鸡蛋将正常加载。同样,这不切实际,因为我需要能够以准备好从关闭导入这些鸡蛋的方式运行我的 python shell。
肮脏的选择是在调用真正的目标脚本之前输出一个执行上述操作的包装脚本,但这似乎是错误的做法:必须有更好的方法来做到这一点。