python - 如何使用 virtualenv 和 pip 从本地存储库导入模块
问题描述
我有一个我认为有一个简单答案的问题,但由于某种原因,我很难自己找到它。我已经使用 virtualenv 创建并激活了一个虚拟环境,我正在尝试安装所有必要的包以创建一个 requirements.txt 文件。
例如,我有一个这样开头的 Python 文件:
import xml.etree.ElementTree as ET
from lib.project import Projector
from lib import writer
import os
import datetime
from datetime import timedelta
from datetime import datetime
import pprint
当我尝试从虚拟机运行此文件时,我收到以下错误:
Traceback (most recent call last):
File "readMap.py", line 2, in <module>
from lib.project import Projector
ModuleNotFoundError: No module named 'lib.project'
我的问题是我不确定为什么虚拟环境找不到project.py。我的目录结构是:
regiaoSul
lib
__init__.py
arrival_conversion.py
coord_conversion.py
message_conversion.py
project.py
route_conversion.py
stop_conversion.py
wkt_parser.py
writer.py
readMap.py
json_generator.py
解决方案
第 2 行的导入意味着 lib 是一个模块,而不是“一个简单的存储库”。我将尝试使用标志 -m 运行脚本。像这样的东西-
python -m script_name
确保在使用 -m 标志运行时删除 .py 扩展名。
另一个建议:您不需要将 python 文件安装到虚拟环境中,它们不是一些外部库。当您运行脚本时,它们只需要存在(具有相同的打包顺序)。
推荐阅读
- loops - WaitGroup 不受双重尊重
- cpu - 测试 XDP 与 DPDK
- flow-project - tutorial03_rlib 中的错误
- javascript - 当函数内部不使用事件参数时,为什么这个handleBlur函数带有事件参数?
- asp.net - 调试器是否有可能同时运行两次?
- python - 在这段代码中,我得到 UnboundLocalError: local variable 'click' referenced before assignment。我不知道为什么?
- javascript - next.js、javascript、graphql、react js 中的 Apollo 客户端问题
- javascript - 如何将两个函数添加到一个事件监听器
- pycharm - .rc 文件的 PyCharm 文件类型关联(语法高亮)
- c++ - 如何在合并排序中计算比较和交换(反转)?[C++]