【发布时间】:2019-04-17 12:10:01
【问题描述】:
对我来说这是一个奇怪的问题。我在pycharm中开发了一个程序,运行良好。如果我要在终端中或通常在 pycharm 之外启动该程序,则会发生很多 ModuleNotFoundErrors。为什么 pycharm 中的导入是正确的,但在它之外是错误的?
我尝试更改导入。例如,我将“from core.bot import Bot”更改为“from bot import Bot”。现在它在终端中工作,但在 pycharm 中,代码行带有红色下划线。
一些导入示例:
'''
from core.bot import Bot
'''
'''
from talib._ta_lib import BBANDS, SMA, MACD
from binance.BinanceKeys import BinanceKey1
from binance.client import Client
'''
【问题讨论】:
-
你有什么文件夹结构,你是从哪个文件夹中运行它的?听起来您正在
core文件夹或某种文件夹中运行终端,而 PyCharm 将从更高级别运行。 -
我尝试了不同的东西。例如,我从核心(如你所说)或它上面的一个文件夹中运行了终端。我还将工作目录从核心更改为它上面的文件夹。我的项目文件夹是“tradingbot”,这个文件夹是“core”和“binance”。实际工作目录是 tradingbot/core
-
您能否提供您在 PyCharm 中的文件夹和文件结构的屏幕截图?很难在没有看到结构的情况下诊断这一点。你的工作目录可能需要是 tradingbot 才能像
import core这样 -
我将工作目录更改为核心并将导入更改为“从机器人导入机器人”。现在这个导入被标记为错误。但我可以在 pycharm 中运行代码而不会出错。但是为什么会被标记为错误呢?
-
我认为您将正在运行的脚本与软件包混淆了。您要么需要正确安装软件包(使用 pip 等),要么软件包应该在路径中(运行脚本的目录是显而易见的地方。)如果您正在运行
BotLauncherTerminal.py,那可能应该在交易机器人级别,使用 core 和 binance 包。
标签: python pycharm python-import