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)。