Python中如何在PyCharm中禁止使用setup安装的包,而引用项目中的代码运行
使用 python setup 安装了自己开发的包,但是接下来 import 到的都是安装的包,无法使用项目中修改代码后的包。希望安装的包给其它人用,而自己开发时屏蔽掉。求解决这个问题的最佳实践
Python中如何在PyCharm中禁止使用setup安装的包,而引用项目中的代码运行
import json
import ".json"
我记得是这样
在PyCharm里,要让项目优先使用自己的代码而不是通过pip install安装的包,关键是配置Python解释器的模块搜索路径(sys.path)。
最直接的方法是在PyCharm中把项目的根目录标记为“Sources Root”。右键点击你的项目根目录文件夹,选择“Mark Directory as” -> “Sources Root”。这样,PyCharm在运行和调试时,会优先从这个目录及其子目录中导入模块。
如果这还不够,或者你需要更精细的控制,可以在运行配置里动手脚。打开“Run/Debug Configurations”,找到你的运行配置,在“Environment variables”里添加:
PYTHONPATH=你的项目根目录绝对路径:$PYTHONPATH
或者在“Interpreter options”里加上:
-m 参数来以模块方式运行,并确保你的包结构正确。
另一种更“硬核”的方法是在代码开头动态修改sys.path,但这通常不是最佳实践,因为它依赖于执行顺序,可能会让代码变得难以理解和维护。
总结:把项目根目录标记为Sources Root是最简单有效的方法。
try:
import '.mypackage’
except:
import mypackage
我是这个意思
我不希望修改代码,这样需要修改很多地方
好像有一个 project setting ?可以设置当前项目的 sdk 之类的,应该能解决楼主的问题吧
virtualenv 使用不同的环境呢
这样需要搞两个 env,还有同步的维护问题
sdk, 那不是 java 的东西吗
- 使用 pip install -e 安装
2. 不安装,在项目目录下做一个链接
我希望安装,但是在 pycharm 中不使用
楼主是来钓鱼的么,我怎么感觉已经把所有可行的方案都给否定了。。。
import sys
sys.path.insert( 1, “your path” )
厉害,支持
两个 env 要同步什么啊,直接 pip install -r requirement.txt
我大型项目经验较少,也大概能猜到一些解决方案,但是 pythoner 不就是得追求简洁可靠的解决方案嘛!
这个也是要修改很多的代码
肯定还有其它的方案,例如设置 usercustomize
你真的试过么?
你知道如何在 pycharm 中全局添加这个 path 吗
哇,兄弟,百度
不只是需要添加,还需要覆盖掉 site-packages 中安装的包,这个涉及到包搜索优先级的问题
所以我让你插在 sys.path 的最前边啊
pycharm2017.1 专业版 添加之后在最后面,且无法调整
哥我给你写的两行代码是干啥的
我上面的回复中声明过不愿意使用这种 dirty 的方式
兄弟,sys.path 是全部变量 你在程序的最开始改过一次之后,其他的文件读到的也是这个,甚至于多进程由于用的是 fork (),用 multi processing 库产生的子进程的 sys.path 也是修改过的。
所以我一再问你试过么
光靠想的就把楼上所有人方案推翻
中文说的好好的非要夹个英文单词
能不能静下心来好好研究?程序员这行饭这么好吃?


