我有四个不同的文件:main,vector,entity和physics.我不会发布所有代码,只发布导入,因为我认为这就是错误所在.(如果你愿意,我可以发布更多)
主要:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Run Code Online (Sandbox Code Playgroud)
实体:
from vector import Vect
from physics import Physics
class Ent:
#holds vector information and id
def tick(self, dt):
#this is where physics changes the velocity and position vectors
Run Code Online (Sandbox Code Playgroud)
向量:
from math import *
class Vect:
#holds i, j, k, and does vector math
Run Code Online (Sandbox Code Playgroud)
物理:
from entity import Ent
class Physics:
#physics class gets an entity …
Run Code Online (Sandbox Code Playgroud) 我有一个项目,正在尝试调试我的main.py
. 我真的很困惑为什么我在运行调试器时从文件顶部的导入中(仅)收到以下错误:
Exception has occurred: ModuleNotFoundError
No module named 'bbb'
File "/Users/maxepstein/myproject/bbb/train/__main__.py", line 8, in <module>
from bbb.mysubfolder.myfile import myfunction
Run Code Online (Sandbox Code Playgroud)
我的项目文件夹结构,如这些打印语句所示(如调试器所示)确认我的“bbb”模块存在,并且有一个 __init__.py:
import os
print(os.getcwd())
print(os.listdir())
print(os.listdir('bbb'))
/Users/maxepstein/myproject
['requirements.txt', 'bbb', 'resources', '__init__.py', 'readme.md', 'results', '.gitignore', '.git', '.vscode', 'bbenv']
['config', 'tests', '__init__.py', 'utils', 'predict', 'train']
Run Code Online (Sandbox Code Playgroud)
我试图调试为“调试当前文件 - 集成终端”,下面是我的 debug settings.json 中适用的调试设置。在网上搜索后,我真的认为添加"cwd": "/Users/maxepstein/myproject"
以下内容是我的解决方案,但没有帮助。
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "/Users/maxepstein/myproject"
}
Run Code Online (Sandbox Code Playgroud) 我试图从一个目录级别进行python导入.
import sys
sys.path.append('..')
from cn_modules import exception
Run Code Online (Sandbox Code Playgroud)
当我尝试运行构建任务时,我从VSCode收到错误:
ImportError:没有名为cn_modules的模块
相同的代码在终端(python)没有任何错误的情况下工作.
当我尝试从VSCode运行构建任务运行它时,我遇到了问题.
这里有什么问题的任何线索?
安静了一段时间,但无法解决这个问题,任何帮助表示赞赏.
注意:当我使用vscode进行调试时,这也适用.下面是我对launch.json和tasks.json的配置
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Console App",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"program": "${file}",
"externalConsole": true,
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit"
],
"env": {},
"envFile": "${workspaceRoot}/.env",
"console":"integratedTerminal",
"pythonPath": "${config:python.pythonPath}"
}
]
}
Run Code Online (Sandbox Code Playgroud)
tasks.json
{
"version": "0.1.0",
"command": "/usr/bin/python",
"isShellCommand": true,
"args": ["${file}"],
"showOutput": "always",
"env": {},
"envFile": "${workspaceRoot}/.env",
"pythonPath": "${config:python.pythonPath}"
}
Run Code Online (Sandbox Code Playgroud) 我开始在Mac上使用VS Code进行Python开发,但无法 pylint
找不到模块。
这是我的项目文件夹结构:
project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
Run Code Online (Sandbox Code Playgroud)
我使用已安装的virtualenv pylint
。虚拟环境在终端中被激活。我code
从终端中的project_root
文件夹中开始code .
。
VS Code说它正在使用正确的解释器。我在左下角看到它说Python 3.6.1 (virtualenv)
如果我想project_root/sample/client/EDAMTest.py
在终端中测试代码,可以export PYTHONPATH=../../lib; python EDAMTest.py
在文件夹中通过它进行测试project_root/sample/client/
。
现在,如果我使用VS Code,请打开文件EDAMTest.py
,pylint
告诉我它无法从导入模块lib
。
现在我的问题是:
我如何添加lib
到PYTHONPATH
在VS代码?
我发现了几种可能的方法:
.env
文件(请参阅下面的[1])。PYTHONPATH
在.vscode/launch.json
文件中指定(请参阅[2])我发现似乎没有可行的解决方案。
我想念什么?
[1] 环境变量定义文件
这告诉我如何定义全局(env)变量。所以我指定了这个:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但这是行不通的。不过lib
小号路径没有被发现pylint
[2]因此,我确实创建了一个 …