Python 鼻测试及;进口
我对Python还很陌生。目前我正在试用PyCharm,我遇到了一些在运行测试时无法解释的奇怪行为 我目前正在处理的项目位于一个名为PythonPlayground的文件夹中。此文件夹包含一些子目录。每个文件夹都包含一个init.py文件。一些文件夹包含nosetest测试 当我从项目目录中的命令行使用nosetest运行程序运行测试时,我必须将“PythonPlayground”放在所有本地导入的前面。例如,在“ui”文件夹中导入名为“model”的模块时,我必须按如下方式导入: 从PythonPlayground.ui.model导入* 但是当我从Pycharm内部运行测试时,我必须再次删除前面的“PythonPlayground”,否则测试将无法工作。像这样: 从ui.model导入* 我也在尝试mock框架,出于某种原因,这个框架总是需要模块的完整名称(包括“PythonPlayground”)。不管我是从命令行还是从PyCharm内部运行测试: 使用补丁('PythonPlayground.ui.models.User')作为模拟:Python 鼻测试及;进口,python,pycharm,nose,Python,Pycharm,Nose,我对Python还很陌生。目前我正在试用PyCharm,我遇到了一些在运行测试时无法解释的奇怪行为 我目前正在处理的项目位于一个名为PythonPlayground的文件夹中。此文件夹包含一些子目录。每个文件夹都包含一个init.py文件。一些文件夹包含nosetest测试 当我从项目目录中的命令行使用nosetest运行程序运行测试时,我必须将“PythonPlayground”放在所有本地导入的前面。例如,在“ui”文件夹中导入名为“model”的模块时,我必须按如下方式导入: 从Pytho
有人能给我解释一下行为上的差异吗?正确的行为是什么?我认为这是因为PyCharm有自己的解释器“副本”,解释器有自己版本的sys路径,您可以将根集投影到比PythonPlayground目录低一级的位置。 您可以在项目的PyCharm中找到解释器的首选项,并设置适当的顶层。
另外,我也有同样的问题,但在Eclipse+pydev中,正如答案所示,这似乎是正确的。这确实是正确的。将源文件移动到名为“src”的目录,并在项目设置中将此目录标记为源目录,解决了以下问题:)