这个故事发生在使用python 2.6.5的Ubuntu linux 10下。
我在django项目调用taskserver
中创建了一个新的自定义命令。
当我在项目目录(/opt/acme/python-site/acme/
并执行
python manage.py taskserver
自定义命令正确启动。
当我在/opt/acme/
时,以下命令执行我的自定义taskserver
命令:
python /opt/acme/python-site/acme/manage.py taskserver
当我在/opt/acme/deploy/
时,以下命令(与上面相同)无法执行我的自定义taskserver
命令:
python /opt/acme/python-site/acme/manage.py taskserver
它抱怨说:
Unknown command: 'taskserver'
Type 'manage.py help' for usage.
即使我指定manage.py文件的完整路径,也知道为什么当前位置很重要?我需要从驻留在deploy目录中的结构脚本运行此命令。关于如何使这项工作的任何建议?
答案 0 :(得分:2)
确保使用管理包的应用程序位于PYTHONPATH中。例如,如果taskserver.py在/opt/acme/python-site/acme/management/commands/taskserver.py
env PYTHONPATH=$PYTHONPATH:/opt/acme/python-site/acme python /path/to/manage.py taskserver
通常,指定manage.py的完整路径不一定能正确设置PYTHONPATH
。
Fabric也可能有自己设置PYTHONPATH
环境变量的方法,我不记得了。但是使用env
无论如何都应该有用。
答案 1 :(得分:0)
试试这个
python ../python-site/acme/manage.py taskserver
当你在/opt/acme/deploy/
时,你必须回到之前的目录。按../
,您就在/opt/acme/
目录,此处manage.py
的路径为../python-site/acme/manage.py