没有解压缩.egg时找不到管理命令

Tra*_*ear 5 django

我有一个django应用程序,我根据这里的文档打包:https: //docs.djangoproject.com/en/1.5/intro/reusable-apps/

我使用setup.py将应用程序安装到虚拟环境中.

./setup.py install
Run Code Online (Sandbox Code Playgroud)

应用程序的Web UI在虚拟环境中运行良好.但我无法通过此vanilla安装访问自定义管理命令.

(django_grm)[grm@controller django_grm]$ python ./manage.py sync_to_graphite
Unknown command: 'sync_to_graphite'
Run Code Online (Sandbox Code Playgroud)

以下是命令不执行时虚拟环境的样子:

(django_grm)[grm@controller django_grm]$ ll /home/grm/venv/django_grm/lib/python2.7/site-packages
total 1148
...
-rw-rw-r--  1 grm grm 243962 Jun 19 17:11 django_grm-0.0.4-py2.7.egg
...
Run Code Online (Sandbox Code Playgroud)

但是,一旦我解压缩.egg文件,管理命令就会按预期工作.

(django_grm)[grm@controller django_grm]$ cd /home/grm/venv/django_grm/lib/python2.7/site-packages
(django_grm)[grm@controller site-packages]$ unzip django_grm-0.0.4-py2.7.egg 

(django_grm)[grm@controller site-packages]$ ll /home/grm/venv/django_grm/lib/python2.7/site-packages
total 1152
...
-rw-rw-r--  1 grm grm 243962 Jun 19 17:11 django_grm-0.0.4-py2.7.egg
drwxrwxr-x  6 grm grm   4096 Jun 19 17:16 dj_grm
...

(django_grm)[grm@controller site-packages]$ cd /home/grm/django_projects/django_grm/
(django_grm)[grm@controller django_grm]$ python ./manage.py sync_to_graphite

<success>
Run Code Online (Sandbox Code Playgroud)

这是正常的行为吗?感觉很不稳定.

tgh*_*ghw 3

我强烈建议使用pip而不是setup.py. 它在安装包和管理包方面往往做得更好。

一旦你有了虚拟环境,它将是:

$ . env/bin/activate
$ pip install [APP_NAME]
Run Code Online (Sandbox Code Playgroud)

这会在虚拟环境中安装应用程序的非压缩版本。

如果该应用程序是来自某个地方的 zip 文件,您仍然可以使用pip

$ pip install http://[URL_TO_ZIP]
Run Code Online (Sandbox Code Playgroud)