第一件事是我不是python专家。
我有一个项目,该项目由PyChart在Mac上运行,并且运行良好。自从我移回Windows之后,我想在Windows Linux子系统(也称为Ubuntu Bash命令行)中运行我的python项目。背后的原因如下:
因此,我将项目移至Ubuntu Bash。我创建了virtualenv,将其激活并尝试运行脚本。它失败,并显示以下错误:
(venv) desktop@DESKTOP-ST034M2:/mnt/c/DEV/project$ ./etl/finance/exports/export.py
Traceback (most recent call last):
File "./etl/finance/exports/export.py", line 5, in <module>
from util import db_connection
ModuleNotFoundError: No module named 'util'
这是项目的样子:
project/
project/__init__.py
project/etl/
project/etl/__init__.py
project/etl/finance/
project/etl/finance/__init__.py
project/etl/finance/exports
project/etl/finance/exports/__init__.py
project/etl/finance/exports/export.py
project/util
project/util/__init__.py
project/util/db_connection.py
export.py如下所示:
#!/usr/bin/python3
import csv
import datetime
from util import db_connection
c = db_connection.Connect("finance_db")
每个目录中都有__init__.py
意味着-至少对我来说-python将目录作为软件包/模块进行管理,因此我可以包含来自不同目录的python文件。因此,我的假设是,如果我从project
目录(这是项目的根目录)执行脚本,那么python应该在目录中找到文件。
我在这里做错了什么?我应该设置和/或检查其他哪些参数来运行脚本?
答案 0 :(得分:1)
尝试
PYTHONPATH=. python youstartfile.py