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 $

しかし、卵以外は何もインストールされていません:

(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 $

何が悪いのか考えていますか?

編集:たとえば、シェルから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 内のパッケージを無視することですpythonjust でインタラクティブシェルを起動すると、すべてを正常にインポートできることがわかると思います。

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 に答える