Django ModuleNotFound用于脚本

时间:2017-09-14 14:45:44

标签: python django python-import importerror python-3.6

这一直在推动我。我有一个具有以下树结构的Django项目,我试图从根目录运行python helper_scripts/load_professors_into_db.py

load_professors_into_db.py包含以下代码:

## TODO: FIX THIS DAMN IMPORT PATH. THE SCRIPT DOESNT RUN CAUSE OF IT
from ocubulum_dashboard.models import Researcher
import pandas as pd
df = pd.read_csv("helper_scripts/soc_myaces_list.csv")
df = df.dropna()
df = df[~pd.isnull(df["scopus_id"])]
df = df[df["scopus_id"] != 'None']

但是,它一直在尝试ModuleNotFound错误。我已尝试在任何地方添加__init__.py个文件,但这也无效。

Traceback (most recent call last):
  File "helper_scripts/load_professors_into_db.py", line 10, in <module>
    from ocubulum_dashboard.models import Researcher
ModuleNotFoundError: No module named 'ocubulum_dashboard'

这个问题不会发生。对于我想要运行的其他脚本,例如scopus_scraper.py,我也面临着这个荒谬的导入问题。

Traceback (most recent call last):
      File "data_collectors/scopus/scopus_scraper.py", line 1, in <module>
        from ocubulum_dashboard.models import Researcher
    ModuleNotFoundError: No module named 'ocubulum_dashboard'

有人能指出我如何解决这个问题吗?我在python 3.6上。

整个文件夹结构:

├── data_aggregators
│   ├── myaces_aggregator.py
│   └── scopus_aggregator.py
├── data_collectors
│   ├── execute_all.py
│   ├── __init__.py
│   ├── journals
│   │   ├── __init__.py
│   │   ├── journal_scraper.py
│   │   ├── master.py
│   │   ├── __pycache__
│   │   │   └── __init__.cpython-36.pyc
│   │   └── test.json
│   ├── nus_myaces
│   │   ├── __init__.py
│   │   ├── master.py
│   │   └── __pycache__
│   │       └── __init__.cpython-36.pyc
│   ├── __pycache__
│   │   └── __init__.cpython-36.pyc
│   └── scopus
│       ├── __init__.py
│       ├── master.py
│       ├── __pycache__
│       │   └── __init__.cpython-36.pyc
│       ├── scopus_scraper.py
│       └── scopus_wrapper
│           ├── __init__.py
│           ├── __pycache__
│           │   ├── __init__.cpython-36.pyc
│           │   └── scopus_wrapper.cpython-36.pyc
│           └── scopus_wrapper.py
├── environment.yml
├── helper_scripts
│   ├── __init__.py
│   ├── load_professors_into_db.py
│   ├── __pycache__
│   │   └── __init__.cpython-36.pyc
│   └── soc_myaces_list.csv
├── __init__.py
├── manage.py
├── ocubulum
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── settings.cpython-36.pyc
│   │   ├── settings_development.cpython-36.pyc
│   │   ├── urls.cpython-36.pyc
│   │   ├── views.cpython-36.pyc
│   │   └── wsgi.cpython-36.pyc
│   ├── settings_development.py
│   ├── settings.py
│   ├── static
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── ocubulum_dashboard
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-36.pyc
│   │       └── __init__.cpython-36.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-36.pyc
│   │   ├── apps.cpython-36.pyc
│   │   ├── __init__.cpython-36.pyc
│   │   ├── models.cpython-36.pyc
│   │   ├── tests.cpython-36.pyc
│   │   └── views.cpython-36.pyc
│   ├── static
│   │   ├── css
│   │   │   ├── custom.css
│   │   │   └── side-menu.css
│   │   ├── img
│   │   │   └── logo.png
│   │   └── js
│   │       └── ui.js
│   ├── templates
│   │   └── ocubulum
│   │       ├── dashboard.html
│   │       └── layout.html
│   ├── tests.py
│   └── views.py
├── Procfile
├── __pycache__
│   └── __init__.cpython-36.pyc
├── README.md
├── requirements.txt
└── runtime.txt

1 个答案:

答案 0 :(得分:0)

尝试from ..ocubulum_dashboard.models import Researcher

或者将包含ocubulum_dashboard的文件夹添加到PYTHONPATH