当前位置:  开发笔记 > 编程语言 > 正文

PyCharm如何以及为何改变Python的导入逻辑?

如何解决《PyCharm如何以及为何改变Python的导入逻辑?》经验,为你挑选了1个好方法。

我在Windows上有一个PyCharm 1.2.1.我必须编辑同一个项目的不同分支 - 有点重的分支,因为它们存在于磁盘上的不同文件夹中 - 说它是c:\apps\alphac:\apps\beta.对于每个这样的文件夹,应调整PYTHONPATH变量以指向位于项目根文件夹(c:\alpha\vendor,...)内某处的相应供应商库.我设法通过从cmd批处理文件启动PyCharm解决了这个问题,该文件在启动PyCharm之前设置了必要的PYTHONPATH变量值(所以我有PyCharm.cmd内部alphaPyCharm.cmd内部beta目录).

问题:当我打开PyCharm进行编辑beta文件夹时,import语句alpha文件夹导入模块!当我python.exe从命令行启动解释器时,一切都按预期工作 - 问题似乎只有PyCharm.

第二个奇怪的调查:print sys.path从PyCharm和外部python.exe解释器执行代码给出不同的结果 - 从PyCharm它不显示我的PYTHONPATH模块.我是Python和PyCharm的新手,但这种行为看起来很奇怪且不一致.

最后我发现PyCharm IDE中的一些设置似乎应该允许我解决这个问题 - File -> Settings -> Python Interpreter.在那里,我找到了两个alphabeta文件夹的所有路径.无法清除此路径列表,仅禁用某些元素.但即使是禁用也有点愚蠢 - 我应该在每次编辑alphabeta"解决方案文件夹" 时单独禁用/重新启用它们.

最后一个问题:PyCharm如何编辑单独的项目(文件夹)并强制PyCharm不从错误的位置导入模块?



1> yole..:

正确的解决方案不是试图解决PyCharm的逻辑,而是在设计时使用IDE功能.这意味着:

不使用任何.cmd脚本来启动PyCharm

从"设置"|中的路径列表中删除特定于"alpha"和"beta"的所有路径 如果在那里列出任何Python解释器

将"alpha/vendor"和"beta/vendor"目录分别标记为alpha和beta项目中的源根.

然后PyCharm将正确解析导入并在从中运行应用程序时自动生成正确的PYTHONPATH.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有