我终于想出了如何创建一个Python egg并让它发挥作用.现在......我该怎么办呢?我该如何使用它?如何确保正确包含所有内容?(简单的步骤,请...不仅仅是重定向到另一个网站.我用谷歌搜索,但它让我感到困惑,我希望有人能用几个简单的要点或句子解释它.)
编辑:
几个星期前我问过这个问题,我现在正在澄清希望得到更明确的答案......基本上,我有一个鸡蛋,我想将它带到另一台机器上,并能够使用它并导入模块来自我的(其他,无关的)代码.我该怎么做呢?
我正在创建一个下载并安装自己的egg插件的应用程序,但是在easy_install将其提取到位后,我在加载鸡蛋时遇到问题.这是它现在的工作方式:
问题是在重新启动python进程之前不会重新加载pth,这意味着必须停止并重新启动应用程序(app是一个长时间运行的进程,并且插件安装不需要重新启动).
所以问题是如何以编程方式重新加载pth以便插件入口点发现适用于新蛋,或者以某种方式让easy_install返回它安装egg的路径,因此我可以手动(使用pkg_resources)加载新插件?
我可以创建一个函数,试图猜测easy_install的路径或者自己解析pth,但我不愿意,如果可能的话.
Python 2.6,setuptools 0.6c9
感谢Marius Gedminas,我现在所做的基本上是:
dist = pkg_resources.get_distribution(plugin_name)
entry = dist.get_entry_info(entry_point_name, plugin_name)
plugin = entry.load()
Run Code Online (Sandbox Code Playgroud) 我正在尝试安装pip但目前无法安装.我导航到pip文件夹和
easy_install .
一切似乎都很好,直到最后:
easy_install .
我也试过easy_install .
并试图引用相关的线程没有运气:线程链接
有任何想法吗?
Launch4J 是一个 jar 到 exe 转换器。我使用 Launch4J 将 jar 转换为 exe,但是当我右键单击 Launch4J 创建的那个 exe 文件时,它会显示当我右键单击该 exe 文件时从中生成的 jar 文件(类等文件)中的内容。有什么方法可以禁用它并禁用在使用 zip/rar/egg/jar 打开时显示其内容?
我是setuptools
第一次使用,并尝试打包我的代码,以便其他人可以轻松地开发它.我在虚拟环境中运行一切.
简短的问题:如何在运行时更改egg-link指向的目录python setup.py develop
?
长问题:我正在开发的模块被称为cops_and_robots
.当我跑步时python setup.py install
,事情很好,我可以导入我的cops_and_robots
模块.但是,当我运行时python setup.py develop
,运行import cops_and_robots
失败,因为cops_and_robots.egg-link
指向错误的目录:
(cops_and_robots)Antares:cops_and_robots nick$ cat ~/virtual_environments/cops_and_robots/lib/python2.7/site-packages/cops-and-robots.egg-link
/Users/nick/Downloads/cops_and_robots/
.
Run Code Online (Sandbox Code Playgroud)
这是目录结构:
|____Downloads
| |____cops_and_robots # the whole package directory
| | |____...
| | |____requirements.txt
| | |____setup.py
| | |____src
| | | |____cops_and_robots # the python package directory
| | | |______init.py__
| | |____...
Run Code Online (Sandbox Code Playgroud)
我的setup.py
:
from setuptools import setup, find_packages
import …
Run Code Online (Sandbox Code Playgroud) 我正在使用setuptools
打包自定义模块进行部署,该模块不应包含data/
用于开发的目录中的某些文件.我已经成功地recursive-exclude data/ *
在我的MANIFEST.in
文件中排除了必要的文件,但我也看到我可以通过这样做prune data/
这两种方法都可以package.egg-info/SOURCES.txt
在打包后从中删除目标文件python setup.py egg_info
这两者有什么区别吗?
我试图跟踪我尝试运行我的代码时得到的python错误消息的来源test.py
.
test.py
我试图从错误输出中跟踪的模块(由其调用)显然是:
build/bdist.linux-x86_64/egg/george/gp.py
Run Code Online (Sandbox Code Playgroud)
错误消息片段:
File "build/bdist.linux-x86_64/egg/george/gp.py", line 498, in
predict
Run Code Online (Sandbox Code Playgroud)
build/bdist.linux-x86_64/
但它是空的.也许这不是'正确'.gp.py
,但是当我对其进行更改时,没有任何反应,因此test.py
不会调用该版本.我想要做的就是找到发生错误的代码,这样我就可以添加更多的输出来弄清楚出了什么问题.
这是错误消息:
Traceback (most recent call last):
File "test.py", line 213, in <module>
mumc, dummy = gp1.predict(residuals, dates, kernel = kernelprime )
File "build/bdist.linux-x86_64/egg/george/gp.py", line 511, in predict
File "build/bdist.linux-x86_64/egg/george/solvers/basic.py", line 87, in apply_inverse
File "/home/me/.local/lib/python2.7/site-packages/scipy/linalg/decomp_cholesky.py", line 174, in cho_solve
b1 = asarray_chkfinite(b)
File "/home/me/.local/lib/python2.7/site-packages/numpy/lib/function_base.py", line 1219, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must …
Run Code Online (Sandbox Code Playgroud) 我们正在使用trac.在我们的设置中,我们遇到了一个在存储库中解决的问题.所以我从存储库中获取了修复文件commit_update.py,我需要将它放入Trac-0.12-py2.6.egg.
由于鸡蛋只是一个ziped的领域我只是解开它,更改文件并再次ziped.重新启动trac后,我收到一条错误消息:
ExtractionError: Can't extract file(s) to egg cache
The following error occurred while trying to extract file(s) to the Python egg
cache:
[Errno 20] Not a directory
The Python egg cache directory is currently set to:
/var/trac/plugin-cache
Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.
Run Code Online (Sandbox Code Playgroud)
我不太明白为什么我得到这个错误,因为我在www-data下运行trac实例,它是插件缓存的所有者.
会欣赏任何想法.
egg ×10
python ×8
pypi ×3
setuptools ×3
pip ×2
python-wheel ×2
setup.py ×2
build ×1
distribution ×1
easy-install ×1
java ×1
launch4j ×1
manifest ×1
python-2.7 ×1
rar ×1
trac ×1
zip ×1