2016-07-19 4 views
1

Я использую виртуальную среду для разработки проекта. Использование python3 и Django 1.9.7
Я разбиваю представления на несколько файлов. Ниже приведена древовидная структура.Просмотр Django, показывающий ошибку в виртуальной среде

|-- urls.pyc 
`-- Views 
    |-- DashboardView.py 
    |-- DashboardView.pyc 
    |-- __init__.py 
    |-- __init__.pyc 
    |-- __pycache__ 
    | |-- DashboardView.cpython-34.pyc 
    | |-- __init__.cpython-34.pyc 
    | `-- VehicleView.cpython-34.pyc 
    |-- VehicleView.py 
    `-- VehicleView.pyc 

Внутри __init__.py файл -

from VehicleView import * 
from DashboardView import * 

Когда я активации виртуальной среды и выполнения кода он бросает меня под ошибкой -

File "/home/rana/DjangoProject/FirstChoice/MyFirstCar/MyFirstCarBackEnd/Views/__init__.py", line 1, in <module> 
    from VehicleView import * 
ImportError: No module named 'VehicleView' 

Если я не активировать виртуальную среду и запустить код, он работает без каких-либо ошибок. По умолчанию django версии 1.8.4 и python 2.7.6

ответ

2

В вашем __init__.py попробуйте использовать локальный импорт вместо этого, это может быть проблемой, если вы используете python3 в своей виртуальной среде.

from .VehicleView import * 
from .DashboardView import * 

Кроме имен файлов и модулей в питоне должны следовать змей дело конвенции, только классы должны использовать CamelCase.

from .vehicle_view import * 
form .dashboard_view import * 
+0

Что такое местный импорт? что такое другой тип импорта? – User42

+1

@ User42 «local import» означает «импорт из файлов в том же каталоге». «Импортирование» - это действие, включающее код из других файлов в текущем файле, поэтому вы можете использовать его без необходимости копировать/вставлять множество вещей. [Здесь] (https://en.wikibooks.org/wiki/A_Beginner%27s_Python_Tutorial/Importing_Modules) - пример того, как писать импортируемые модули, и [здесь] (https://docs.python.org/3/reference /import.html) - это документация для системы импорта. –

Смежные вопросы