关于python:PyCharm模块导入错误

PyCharm module import error

我不熟悉pycharm,并且很难导入我编写到Python控制台中的模块。如果我尝试导入一个python自带的模块,我可以毫不费力地导入该模块,但是如果我尝试导入一个我编写的模块,我会得到一个importError:没有名为"moduleitriedtoimportname"的模块。例如,这里有一个简单的自写模块来处理称为"filepickle"的pickle文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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控制台上"导入pickle",那么导入将不会出错。如果我尝试"导入filepickle",则会收到错误消息:

1
ImportError: No module named 'filepickle'

如果我在pycharm中运行filepickle,模块filepickle工作正常,但是我无法在python控制台中导入filepickle。如果有人知道如何让Pycharm允许我导入我已经写入Pycharm Python控制台的模块,我将非常感谢您的帮助。


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

1
2
import os
os.getcwd()


我也有同样的问题。

解决方案是将模块目录标记为"source root",并将python配置为导入"source root"目录。

有关如何执行此操作的屏幕截图,请参阅下面的升水回答:

PyCharm does not recognize modules installed in development mode

imho,这是Pycharm中的一个bug:这应该是有效的,并且不需要两个单独的步骤来实现任何功能。

这个问题出现在Windows10上的Pycharm社区版2017.2.3中(可能还有Linux)。