代码之家  ›  专栏  ›  技术社区  ›  Hendrra

在Python中导入自己的模块时出现奇怪的问题

  •  1
  • Hendrra  · 技术社区  · 5 年前

    the official Python documentations this post

    from my_module import my_function
    

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

    My python scripts

    现在我导入 以如下方式 enter image description here

    韦伯斯克拉珀 . 我该如何处理这个问题?

    0 回复  |  直到 5 年前
        1
  •  5
  •   john-hen    5 年前

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

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

        2
  •  1
  •   sahasrara62    5 年前

    你在用spyder。

    你只需要在spyder文件资源管理器中转到你的项目ie

    /User/david/Document/Python/Project/

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

    运行代码,它就会工作

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

     from . import WebScraper 
     x=WebScrapper().function
    
        3
  •  1
  •   hygull    5 年前

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

    C:\Users\<username> 在窗户里, /Users/<username>

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

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

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

    在这个尝试导入之后,它将工作。

    如果您愿意,可以将此路径附加到 sys.path