我究竟如何配置我的setup.py文件,以便当有人运行easy_install时,包将作为目录扩展到\ site-packages \,而不是保留在egg中.
我遇到的问题是我创建的一个django应用程序不会自动检测它是否存在于一个鸡蛋内.
编辑:例如,如果我键入easy_install photologue它只是将一个\photologue\目录安装到site-packages中.这是我想要的行为,但似乎为了实现这一点,需要在打包的目录中至少有一个目录/模块.
我正在尝试为Python Markdown-2.0.3-py2.7.egg添加视频扩展
事情不起作用,所以我想用pdb调试器来看看发生了什么.
我似乎无法找到插入pdb的源代码.
鸡蛋位于这里:
/usr/local/lib/python2.7/site-packages/Markdown-2.0.3-py2.7.egg
Run Code Online (Sandbox Code Playgroud)
使用iPython,我可以查看Markdown模块的Python源代码及其路径:
/usr/local/lib/python2.7/site-packages/Markdown-2.0.3-py2.7.egg/markdown/__init__.py
Run Code Online (Sandbox Code Playgroud)
但我无法导航到该文件,也无法在文本编辑器中打开它.
我猜测我正在查看的源代码可能是从编译的egg中生成的.但是,似乎必须有某种方式来访问代码.
我们都是开发团队在Django网站上工作.最近我们开始zc.buildout在里面使用了virtualenv.我可以看到如何virtualenv通过沙盒环境来帮助您.创建沙箱后,可以简单地使用pip安装必要的包/鸡蛋.我读过pip可以加载需求文件中的所有鸡蛋.这让我质疑它的好处和附加功能zc.buildout.zc.buildout下载你在buildout.cfg文件中提到的鸡蛋,但正如我所写,你已经可以使用pip和需求文件.是否zc.buildout做更多的事情我失踪?我已经可以使用我的所有自动化Fabric.
我跑了
bin/paster create -t dexterity my.example
运行后,我有以下内容:
bootstrap.py
docs
my.example.egg-info
PasteDeploy-1.5.0-py2.6.egg
plone.cfg
setup.cfg
buildout.cfg
my
Paste-1.7.5.1-py2.6.egg
PasteScript-1.7.5-py2.6.egg
README.txt
setup.py
Run Code Online (Sandbox Code Playgroud)
为什么我还有3个鸡蛋?我的buildout配置错了吗?
我刚刚使用统一安装程序安装了Plone4,当我尝试运行pater命令时出现此错误:
AttributeError: 'module' object has no attribute 'NoDefault'
Run Code Online (Sandbox Code Playgroud)
这时候,我附加了[paster]部分到我的扩建如图所示这里.最初,我的buildout只有没有[zopskel]部分的[paster]部分.
使用buildout时有2个目录:egg和parts.还有buildout.cfg中的egg和parts声明.这些构建系统元素的目的是什么?
我写了一些代码,我想打包成鸡蛋.这是我的目录结构:
src/ src/tests src/tests/test.py # this has several tests for the movie name parser src/torrent src/torrent/__init__.py src/torrent/movienameparser src/torrent/movienameparser/__init__.py # this contains the code
我想将这个目录结构打包为一个egg,并包含测试文件.我应该在setup.py文件中包含什么内容,以便我可以拥有任意数量的命名空间和任意数量的测试?
这是我想分享的第一个开源代码.即使可能,我将是唯一一个会发现这个模块有用的人,我想上传它pypi.我可以使用哪种许可证,允许用户使用代码执行他们想要的操作,对重新分发,修改没有限制?
即使我计划更新这个鸡蛋,我也不想对任何事情负责(例如为用户提供支持).我知道这可能听起来很自私,但这是我的第一个开源代码,所以请耐心等待.我是否需要提供许可证副本?我在哪里可以找到副本?
感谢阅读所有这些.
尝试使用easy_install在整个南站点安装.但是我有权限问题:
drwxr-x--- 2 root root 4096 Nov 8 10:23 South-0.7.2-py2.6.egg-info
Run Code Online (Sandbox Code Playgroud)
然后我尝试用pip安装它,但收到了相同的结果.
我假设我可以通过更改权限来解决这个问题.但是,我在安装过程中做错了什么?或者包装有问题吗?
iddqd:请发送输出.sudo pip install -e hg + http://bitbucket.org/andrewgodwin/south/
结果如下:
$ sudo pip-python install -e hg+http://bitbucket.org/andrewgodwin/south/
--editable=hg+http://bitbucket.org/andrewgodwin/south/ is not the right format; it must have #egg=Package
Run Code Online (Sandbox Code Playgroud) 我有一个我编写的自定义 Python 蛋,我无法从外部加载子模块(或嵌套模块)。我已经能够很好地加载一个根级模块。
这是混淆的结构:
我的蛋/
我的蛋/
__init__.py(空文件)
module_one.py
我的子目录\
__init__.py(空文件)
module_two.py
设置文件
导入 module_one 有效:
from my_egg import module_one
Run Code Online (Sandbox Code Playgroud)
但我似乎无法导入 module_two。这是我尝试过的:
from my_egg.my_subdir import module_two
from my_egg import my_subdir.module_two
from my_egg.my_subdir.module_two import *
Run Code Online (Sandbox Code Playgroud)
这些都没有用。这是我的 setup.py 的样子:
from setuptools import setup
setup(name='my_egg',
version='0.1',
packages=['my_egg'],
test_suite='nose.collector',
tests_require=['nose'],
zip_safe=False)
Run Code Online (Sandbox Code Playgroud) 我在amazon bitnami ec2中托管了3个项目,我的项目没有运行.当我检查我的日志时,它显示错误如下:
Python egg cache目录当前设置为:/opt/bitnami/.tmp也许您的帐户没有对此目录的写访问权限?您可以通过将PYTHON_EGG_CACHE环境变量设置为指向可访问的目录来更改缓存目录.
我的项目在/opt/bitnami/projects(该目录中的所有3个项目).
我怎么解决这个问题?
我有一个python脚本,我想部署到各种PC运行测试,我需要使用第三方库pysnmp.由于我不想pysnmp在每台目标PC上手动安装,我想我可以将pysnmp(和相关的)eggs放在一个eggs/目录中,然后在导入之前将其附加到python路径:
import sys
sys.path.append("./eggs/pysnmp-4.2.5-py3.4.egg")
sys.path.append("./eggs/pyasn1-0.1.7-py3.3.egg")
from pysnmp.entity.rfc3413.oneliner import cmdgen
Run Code Online (Sandbox Code Playgroud)
只要我在包含的目录中执行脚本,这就像预期的那样工作eggs/,但它似乎相当手动和杂乱.是否有一种可移植的方式告诉python只是在[path to module]/eggs/我想要导入时搜索?
egg ×10
python ×9
setuptools ×5
django ×3
buildout ×2
caching ×1
distribute ×1
distutils ×1
easy-install ×1
markdown ×1
paster ×1
pip ×1
plone ×1
pypi ×1
pythonpath ×1