Нет модуля с именем 'Django' - PullRequest
0 голосов
/ 08 мая 2018

Перед установкой Django я установил виртуальную среду с conda. После активации моего виртуального окружения установил django pip install django. Когда я нажимаю python на консоли, после импорта python ошибки не возникает. Однако, когда я запускаю python pop_script.py, я получаю

(MyDjangoEnv) MacBook-Pro:firstProject eLmaesTro$ python pop_script.py 
Traceback (most recent call last):
  File "pop_script.py", line 4, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Я не смог выполнить этот файл.

Вот код файла. ( 1010 * pop_script.py *)

import os
os.environ.setdefault('DJANGO_SETTINGS_VALUE','firstProject.settings')

import django
django.setup()

# FAKE POP SCRIPT
import random
from firstApp.models import Topic,Webpage,AccessRecord
from faker import Faker

fakegen = Faker()
topics = ['Search','Social','Marketplace','News','Games']

def add_topic():
    t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]
    t.save()
    return t

def populate(N=5):

    for entry in range(N):

            # get the topic
            top = add_topic()

            # create the fake data for that entry
            fake_url = fakegen.url()
            fake_date = fakegen.time()
            fake_name = fakegen.company()

            # create the new webpage entry
            webpg = Webpage.objects.get_or_create(topic=top,url=fake_url,name=fake_name)[0]

            # create a fake access record for that webpage
            acc_rec = AccessRecord.objects.get_or_create(name=webpg,date=fake_date)[0]


if __name__ == '__main__':
    print('populating script!')
    populate(20)
    print('population complete!')

1 Ответ

0 голосов
/ 08 мая 2018

Убедитесь, что MyDjangoEnv/lib/python2.7/site-packages/ содержит папку django. Если нет, это означает, что он не установлен в вашей среде.
Если вы установили его с помощью команды pip в среде conda, как указано в , эта проблема от:

conda install pip 

тогда он, похоже, устанавливает пакеты в корневой папке site-packages пакета python, а не в среде. Следующая тема:

Проблема возникает, когда я сначала создаю пустое окружение и активирую его. Затем я конда установить пип. В том же активированном env, если я использую pip install, он устанавливается в глобальный каталог. Env активирован, и установка conda работает должным образом.

Этого не произойдет, если я добавлю pip в env при его создании. Это проблема.

Итак, удалите среду conda и переустановите ее, но на этот раз добавьте pip при создании conda env. Что-то вроде:

conda create -n env pip

Надеюсь, это поможет!

Update

После ошибки в ваших комментариях ваш код выглядит хорошо. Это проблема среды conda. Вероятно, не подчиняются os.environ.setdefault. В conda docs он показывает способ добавления переменных окружения в conda env:

anaconda-project add-variable --default='firstProject.settings' DJANGO_SETTINGS_VALUE

Посмотрите на этот вопрос, чтобы настроить среду при запуске. Попробуйте проверить значение, установленное в os.environ:

os.environ.setdefault('DJANGO_SETTINGS_VALUE','firstProject.settings')
print os.getenv('DJANGO_SETTINGS_VALUE')

django.setup()

В случае, посмотрите на это , где они сбрасывают PYTHONPATH перед использованием conda.
Похоже, что в вашем случае os.environ находится в стороне от управляемой среды Conda, поэтому попробуйте использовать среду, специфичную для Coda.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...