0

我已经下载了一个存储库Django 类装置,我想在我的 virtualenv 中使用 python setup.py install 安装它:

(test)/tmp/django-class-fixtures $ which python
/home/kuba/.virtualenvs/test/bin/python
(test)/tmp/django-class-fixtures $ python setup.py install
...
Extracting django_class_fixtures-0.8-py2.7.egg to /home/kuba/.virtualenvs/test/lib/python2.7/site-packages
Adding django-class-fixtures 0.8 to easy-install.pth file

Installed /home/kuba/.virtualenvs/test/lib/python2.7/site-packages/django_class_fixtures-0.8-py2.7.egg
Processing dependencies for django-class-fixtures==0.8
Finished processing dependencies for django-class-fixtures==0.8
(test)/tmp/django-class-fixtures $

但是除了 egg 什么都没有安装:

(test)/tmp/django-class-fixtures $ cdvirtualenv
(test)/home/kuba/.virtualenvs/test $ cd lib/python2.7/site-packages
(test)/home/kuba/.virtualenvs/test/lib/python2.7/site-packages $ ls
django                               PIL
Django-1.4-py2.7.egg-info            PIL.pth
django_class_fixtures-0.8-py2.7.egg  pip-1.1-py2.7.egg
easy-install.pth                     setuptools-0.6c11-py2.7.egg
IPython                              setuptools.pth
ipython-0.12-py2.7.egg-info
(test)/home/kuba/.virtualenvs/test/lib/python2.7/site-packages $

你有什么想法吗?

编辑:我想从 shell 导入 class_fixtures 例如:

(test)/home/kuba/.virtualenvs/test/lib/python2.7/site-packages $ ipython
Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
Type "copyright", "credits" or "license" for more information.

IPython 0.11 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import class_fixtures
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/home/kuba/.virtualenvs/test/lib/python2.7/site-packages/<ipython-input-1-6a049da89661> in <module>()
----> 1 import class_fixtures

ImportError: No module named class_fixtures

In [2]:
4

1 回答 1

3

问题不在于没有安装包,而是 IPython 忽略了您的 virtualenv 中的包,如此所述。我想你会发现用 just 启动一个交互式 shellpython可以让你很好地导入所有东西。

要让 IPython 识别站点包,请将类似这样的内容放在一个名为~/.ipython/profile_default/startup/00-virtualenv.py或类似的文件中:

from __future__ import print_function
import site
from os import environ
from os.path import join
from sys import version_info

if 'VIRTUAL_ENV' in environ:
    virtual_env = join(
        environ.get('VIRTUAL_ENV'),
        'lib',
        'python%d.%d' % version_info[:2],
        'site-packages'
    )
    site.addsitedir(virtual_env)
    print('VIRTUAL_ENV ->', virtual_env)
    del virtual_env
    del site, environ, join, version_info
于 2012-04-14T13:11:07.120 回答