V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xielongen
V2EX  ›  Python

pycharm 如何禁止使用 setup 安装的包而引用项目中的代码运行

  •  
  •   xielongen · 2017-07-17 09:01:40 +08:00 · 2859 次点击
    这是一个创建于 2474 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 python setup 安装了自己开发的包,但是接下来 import 到的都是安装的包,无法使用项目中修改代码后的包。希望安装的包给其它人用,而自己开发时屏蔽掉。求解决这个问题的最佳实践

    28 条回复    2017-07-21 07:36:52 +08:00
    whileFalse
        1
    whileFalse  
       2017-07-17 09:03:55 +08:00
    import json

    import ".json"

    我记得是这样
    whileFalse
        2
    whileFalse  
       2017-07-17 09:06:30 +08:00
    try:
    import '.mypackage'
    except:
    import mypackage

    我是这个意思
    xielongen
        3
    xielongen  
    OP
       2017-07-17 09:06:40 +08:00
    我不希望修改代码,这样需要修改很多地方
    lights
        4
    lights  
       2017-07-17 09:11:07 +08:00 via iPhone
    好像有一个 project setting ?可以设置当前项目的 sdk 之类的,应该能解决楼主的问题吧
    mkeith
        5
    mkeith  
       2017-07-17 09:22:28 +08:00   ❤️ 1
    virtualenv 使用不同的环境呢
    xielongen
        6
    xielongen  
    OP
       2017-07-17 09:24:03 +08:00
    @mkeith 这样需要搞两个 env,还有同步的维护问题
    xielongen
        7
    xielongen  
    OP
       2017-07-17 09:25:11 +08:00
    @lights sdk, 那不是 java 的东西吗
    walleL
        9
    walleL  
       2017-07-17 09:58:41 +08:00   ❤️ 1
    1. 使用 pip install -e 安装
    2. 不安装,在项目目录下做一个链接
    xielongen
        10
    xielongen  
    OP
       2017-07-17 10:23:53 +08:00
    @walleL 我希望安装,但是在 pycharm 中不使用
    zjb861107
        11
    zjb861107  
       2017-07-17 10:36:05 +08:00
    楼主是来钓鱼的么,我怎么感觉已经把所有可行的方案都给否定了。。。
    tempdban
        12
    tempdban  
       2017-07-17 10:49:56 +08:00
    import sys
    sys.path.insert( 1, "your path" )
    2929899530pgy
        13
    2929899530pgy  
       2017-07-17 10:57:02 +08:00
    厉害,支持
    mkeith
        14
    mkeith  
       2017-07-17 11:03:27 +08:00
    两个 env 要同步什么啊,直接 pip install -r requirement.txt
    xielongen
        15
    xielongen  
    OP
       2017-07-17 13:18:11 +08:00
    @zjb861107 我大型项目经验较少,也大概能猜到一些解决方案,但是 pythoner 不就是得追求简洁可靠的解决方案嘛!
    xielongen
        16
    xielongen  
    OP
       2017-07-17 13:20:44 +08:00
    @tempdban 这个也是要修改很多的代码
    xielongen
        17
    xielongen  
    OP
       2017-07-17 13:42:01 +08:00
    @zjb861107 肯定还有其它的方案,例如设置 usercustomize
    tempdban
        18
    tempdban  
       2017-07-17 16:32:17 +08:00
    @xielongen 你真的试过么?
    tempdban
        19
    tempdban  
       2017-07-17 16:38:34 +08:00
    xielongen
        20
    xielongen  
    OP
       2017-07-19 10:09:19 +08:00
    @tempdban 你知道如何在 pycharm 中全局添加这个 path 吗
    tempdban
        21
    tempdban  
       2017-07-19 11:10:51 +08:00 via Android
    @xielongen 哇,兄弟,百度
    xielongen
        22
    xielongen  
    OP
       2017-07-20 13:11:43 +08:00
    @tempdban 不只是需要添加,还需要覆盖掉 site-packages 中安装的包,这个涉及到包搜索优先级的问题
    tempdban
        23
    tempdban  
       2017-07-20 13:19:26 +08:00 via Android
    @xielongen 所以我让你插在 sys.path 的最前边啊
    xielongen
        24
    xielongen  
    OP
       2017-07-20 13:21:38 +08:00
    @tempdban pycharm2017.1 专业版 添加之后在最后面,且无法调整
    tempdban
        25
    tempdban  
       2017-07-20 13:34:17 +08:00 via Android
    @xielongen 哥我给你写的两行代码是干啥的
    xielongen
        26
    xielongen  
    OP
       2017-07-20 13:38:43 +08:00
    我上面的回复中声明过不愿意使用这种 dirty 的方式
    xielongen
        27
    xielongen  
    OP
       2017-07-20 13:39:34 +08:00
    @tempdban 我上面的回复中声明过不愿意使用这种 dirty 的方式, 每个文件添加添加这样冗余的代码,看着太恶心了
    tempdban
        28
    tempdban  
       2017-07-21 07:36:52 +08:00 via Android
    @xielongen 兄弟,sys.path 是全部变量 你在程序的最开始改过一次之后,其他的文件读到的也是这个,甚至于多进程由于用的是 fork (),用 multi processing 库产生的子进程的 sys.path 也是修改过的。
    所以我一再问你试过么
    光靠想的就把楼上所有人方案推翻
    中文说的好好的非要夹个英文单词
    能不能静下心来好好研究?程序员这行饭这么好吃?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1598 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:59 · PVG 00:59 · LAX 09:59 · JFK 12:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.