在Spyd中运行脚本时无法导入我自己的模块

2024-06-30 12:14:44 发布

您现在位置:Python中文网/ 问答频道 /正文

根据the official Python documentations或to this post,将自己的模块导入脚本非常容易。基本上我只需要创建我的.py文件,将它们保存在一个目录中,我可以使用

from my_module import my_function

这正是我在我的项目中所做的。我写了两个脚本并将它们保存在一个目录中。我想在第三个脚本中使用它们的一些函数(同样它保存在同一个目录中)。如下图所示。在

My python scripts

现在我导入WebScraper.py按以下方式 enter image description here

正如您在上图中看到的,有一个错误,说明没有名为WebScraper的模块。我该如何处理这个问题?在


Tags: 模块文件thetofrompy目录脚本
3条回答

你在用spyder。在

你需要做的就是在spyder文件浏览器转到你的项目ie

/User/david/Document/Python/Project/

然后关闭ipython终端并在文件资源管理器中启动一个新的on(在您转到project文件夹之后)。在

为什么您的方法不起作用,因为ipython将python的执行路径作为文件资源管理器(spyder)中打开的当前路径

运行代码,它会工作的

另一方面你需要提供相对路径和使用

 from . import WebScraper 
 x=WebScrapper().function

在Spyder IDE中,正如我从屏幕截图中看到的,当前工作目录(显示在右上角)与脚本所在的目录(显示在编辑器面板的顶部)不同。在

如果您打开“工具”菜单,选择“首选项”,然后切换到“运行”选项卡,您会发现一个名为“工作目录设置”的框,您可以在其中选择“正在执行的文件的目录”或“当前工作目录”。我怀疑,事实上,你选择了后者。这就解释了为什么找不到模块。在

使用默认设置-“正在执行的文件的目录”,Spyder只需在自己的文件夹中执行脚本,脚本就可以找到模块了。在

默认情况下,大多数应用程序都有默认的工作目录。在

例如:如果您打开命令提示符,它的提示符类似于Windows中的C:\Users\<username>,MAC中的/Users/<username>。在

当然,Spyder也会有自己的工作目录。无论何时执行任何脚本,Spyder都会首先查看该脚本。在

我的建议是通过程序检查工作目录并导航到正确的位置(如果我们在错误的地方)。看看下面的代码。在

import os
os.getcwd() # Check current directory's path
os.chdir('/Users/david/Documents/Python/Project') # Navigate

在这次尝试导入之后,它会起作用的。在

如果您愿意,可以将此路径附加到sys.path列表中。在

相关问题 更多 >