这一直在推动我。我有一个具有以下树结构的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
答案 0 :(得分:0)
尝试from ..ocubulum_dashboard.models import Researcher
。
或者将包含ocubulum_dashboard
的文件夹添加到PYTHONPATH
。