我已经创建了内部模块,其结构如下-
project
└── src
└── rogers
└──__init__.py
└── cd
├── __init__.py
├── preprocessor
└── dataOps
└── __init__.py
└── verint.py 我所犯的错误-
Traceback (most recent call last):
File "main_scripts/PreprocessingStep/verint_preprocessing.py", line 11, in <module>
from rogers.cd.dataOPs import Verint
ImportError: No module named rogers.cd.dataOPs数据操作中的init.py如下所示
from rogers.cd.dataOPs.boldchat import *
from rogers.cd.dataOPs.verint import *这就是我的setup.py的样子(没有显示整个文件,只显示其中的一部分)
classifiers=[
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
],
install_requires = external_packages,
package_dir={"": "src"},
packages= setuptools.find_namespace_packages(where="src"),
package_data={'': ['*.yaml']},
include_package_data=True,
python_requires=">=3.7",我最近从PyCharm迁移到VSCode。该代码在PyCharm中运行良好,但不适用于VSCode。
发布于 2022-02-21 03:05:04
setup.py在VSCode中不工作,您可以通过(terminal.integrated.env.*) and/or within an .env file修改VSCode中的PYTHONPATH
PYTHONPATH环境变量指定Python解释器应该查找模块的其他位置。在VS代码中,PYTHONPATH可以通过终端设置(Teral.Integrated.env.*)和/或在.env文件中进行设置。 当使用终端设置时,PYTHONPATH会影响用户在终端内运行的任何工具,以及扩展对通过终端路由的用户执行的任何操作,如调试。但是,在这种情况下,当扩展执行未通过终端路由的操作时,例如使用linter或格式化程序时,此设置将不会对模块查找产生影响。 当使用.env文件设置PYTHONPATH时,它将影响扩展名代表您执行的任何操作和调试器执行的操作,但不会影响终端中运行的工具。 如果需要,可以使用这两种方法来设置PYTHONPATH。 何时使用PYTHONPATH的一个示例是,如果您在src文件夹中有源代码,而在test文件夹中有测试。但是,在运行测试时,这些测试通常不能访问src中的模块,除非您硬编码相关路径。 为了解决这个问题,您可以在VS代码工作区中创建一个.env文件,从而将src的路径添加到PYTHONPATH。 PYTHONPATH=src
发布于 2022-02-21 03:22:45
首先,在__init__.py文件夹中添加rogers文件。
然后,您需要将项目目录路径添加到sys.path或$PYTHONPATH中。然后只有python才能识别包并导入它。这肯定会解决问题。
https://stackoverflow.com/questions/71200154
复制相似问题