我创建了一个自定义的paster命令,如http://pythonpaste.org/script/developer.html#what-do-commands-look-like中所述。在我的setup.py中,我像这样定义了入口点:
entry_points={
'paste.global_paster_command' : [
'xxx_new = xxxconf.main:NewXxx'
]
}我在一个激活的virtualenv中,并且已经通过
python setup.py develop如果我在我的包文件夹中运行paster,我会看到我的自定义命令,并且我可以通过paster xxx ...运行它。但是如果我离开我的包文件夹,paster将不再显示我的命令。我查看了which paster,它是我的virtualenv的版本。我还启动了一个python解释器并导入了xxxconf,它工作得很好。
我不知道为什么当我在我的包文件夹之外时,我的全局命令不被识别!?
发布于 2013-01-02 22:31:53
你做错了什么,它应该是有效的。这是最小的工作示例,你可以用你的virtualenv来测试它:
blah/setup.py
from setuptools import setup, find_packages
setup(name='blah',
version='0.1',
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
include_package_data=True,
zip_safe=False,
entry_points={'paste.global_paster_command': [ "xxx_new = blah.xxx:NewXxx", ] },
)blah/blah/xxx.py
from paste.script import command
class NewXxx(command.Command):
usage = "PREFIX"
summary = "some command"
group_name = "my group"blah/blah/__init__.py:为空。
现在测试:
$ pwd
/tmp
$ virtualenv paster
New python executable in paster/bin/python
Installing setuptools............done.
Installing pip...............done.
$ . paster/bin/activate
(paster)$ pip install PasteScript
Downloading/unpacking PasteScript
[... skipping long pip output here ...]
(paster)$ paster
[...]
Commands:
create Create the file layout for a Python distribution
help Display help
make-config Install a package and create a fresh config file/directory
points Show information about entry points
post Run a request for the described application
request Run a request for the described application
serve Serve the described application
setup-app Setup an application, given a config file
(paster)$ cd blah/
(paster)$ python setup.py develop
running develop
[... skipping setup.py output...]
(paster)$ paster
[...]
Commands:
create Create the file layout for a Python distribution
help Display help
make-config Install a package and create a fresh config file/directory
points Show information about entry points
post Run a request for the described application
request Run a request for the described application
serve Serve the described application
setup-app Setup an application, given a config file
my group:
xxx_new some command
(paster)$ cd ~
(paster)$ paster
[...]
Commands:
[...]
setup-app Setup an application, given a config file
my group:
xxx_new some command发布于 2013-01-04 12:33:48
你应该在活动的虚拟环境中安装你的paster_script。然后你可以在任何地方使用它。
https://stackoverflow.com/questions/14095023
复制相似问题