【问题标题】:PyCharm module import errorPyCharm 模块导入错误
【发布时间】:2016-06-24 10:10:27
【问题描述】:

我是 PyCharm 的新手,在导入已写入 Python 控制台的模块时遇到困难。如果我尝试导入 Python 原生的模块,我可以毫无困难地导入该模块,但如果我尝试导入我编写的模块,我会收到 ImportError: No module named 'ModuleITriedToImportName'。例如,这是一个简单的自写模块,用于腌制文件,称为“filepickle”:

import pickle

def saveDbase(filename, object):
    file = open(filename, 'wb')
    #pickle.dump(object, file)       # pickle to file
    #pickle.dump(object, open(filename, 'wb'))
    pickle.dump(object, file)
    file.close()                     # any file-like object will do

def loadDbase(filename):
    file = open(filename, 'rb')
    object = pickle.load(file)       # unpickle from file
    file.close()                     # recreates object in memory
    return object

如果我尝试在 PyCharm Python 控制台“导入泡菜”,那么导入工作不会出现任何错误。如果我尝试“导入 filepickle”,我会收到错误消息:

ImportError: No module named 'filepickle'

如果我在 PyCharm 中运行 filepickle,模块 filepickle 工作得很好,但我无法在 Python 控制台中导入 filepickle。如果有人知道如何让 PyC​​harm 允许我将我编写的模块导入 PyCharm Python 控制台,我将不胜感激。

【问题讨论】:

  • 您的意思是您编写了一个名为 filepickle 的模块并想要导入它?在这种情况下,您需要将模块保存到文件中,而不仅仅是将其写入控制台。无法导入在交互式控制台中执行的代码。
  • filepickle.py 位于哪个目录?它与您运行 Python 控制台的目录相同吗?
  • 您好,是的,我写了一个名为 filepickle 的模块并想导入它。是的,我确实将它保存为 python 文件,而不仅仅是在控制台中编写它。 filepickle.py 位于一个数据库目录中,其中包含我为该项目编写的每个模块。我从 Pycharm 中运行 Python 控制台。

标签: python import module pycharm


【解决方案1】:

我遇到了完全相同的问题。

解决方法是将模块目录标记为“Source Root”,同时配置Python导入“Source Root”目录。

有关如何执行此操作的屏幕截图,请在此处查看 Contango 的答案:

PyCharm does not recognize modules installed in development mode

恕我直言,这是 PyCharm 中的一个错误:这应该可以正常工作,并且不需要两个单独的步骤即可使任何工作正常工作。

此问题存在于 Windows 10(也可能是 Linux)上的 PyCharm Community Edition 2017.2.3 中。

【讨论】:

    【解决方案2】:

    我无法重现您的错误(PyCharm 5.0.4、OS X 10.10.5、Python 3.4.3/2.7.6)。 您可以尝试在控制台中运行此代码以找出当前工作目录,如果它与 filepickle 的不同,则很可能是问题所在。

    import os
    os.getcwd()
    

    【讨论】:

    • 您好,感谢您的回复。如果我从 Pycharm Python 控制台运行 os.getcwd() ,我会将其作为当前目录:
    • 您好,感谢您的回复。就是这样。当我在 PyCharm 中创建这个项目时,我创建了一个目录来保存我的所有模块。当我将模块从该目录中取出并将其移动到 Pycharm 工作目录时,导入按预期工作。感谢您的帮助,非常感谢。
    猜你喜欢
    • 2016-04-06
    • 2018-03-16
    • 1970-01-01
    • 2016-09-03
    • 2013-11-22
    • 2020-10-09
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多