我正在使用 VS Code 开发一个 python 包,其在 VS Code 中打开的工作区文件夹的布局如下
workspace
| + tests
| | - test1.py
| | + other_tests
| | | - test2.py
| + mymodule
| | ...
Run Code Online (Sandbox Code Playgroud)
我想要的是打电话进来test1.py并带test2.py包裹mymodule
import mymodule
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我总是收到错误no module named 'mymodule'。我知道我可以通过将以下内容插入到所有测试文件来加载路径:
import sys
sys.path.append('<path_to>/workspace/')
Run Code Online (Sandbox Code Playgroud)
然后mymodule就可以正确加载了。(我知道我可以使用pathlib.Path(__file__).parent[n]一些n来获得<path_to>.
但如果你在不同的文件夹中有很多测试文件,这个过程真的很麻烦......而且它很丑陋。
有什么方法可以告诉 VS Code 始终将 包含workspace在路径中吗?
我尝试了一个.env文件
PYTHONPATH=<path_to>/workspace/
Run Code Online (Sandbox Code Playgroud)
我还尝试将以下内容添加到launch.json:
"env": { "PYTHONPATH": "${workspaceFolder}" }
Run Code Online (Sandbox Code Playgroud)
两者都没有达到目的。(我也不确定这是否PYTHONPATH …