python 新手 关于 import 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
shotego

python 新手 关于 import 的问题

  •  
  •   shotego Nov 24, 2015 3784 views
    This topic created in 3807 days ago, the information mentioned may be changed or developed.

    pkg|
    init.py
    urllib2.py
    main.py
    我尝试创建这么一个 pkg,其中包含了 urllib2.py,main.py 。我尝试 import urllib2 ,但是总是会自动识别为我自己创建的 urllib2 。怎么才能使用标准库中的 urllib2 ?

    19 replies    2015-11-25 11:54:52 +08:00
    shotego
        1
    shotego  
    OP
       Nov 24, 2015
    查了下关于 absolute import 和 relative import ,然而感觉还是一头雾水
    leavic
        2
    leavic  
       Nov 24, 2015
    学习一下相对导入和绝对导入的概念
    laoyuan
        3
    laoyuan  
       Nov 24, 2015
    改名
    jakiepaper
        5
    jakiepaper  
       Nov 24, 2015 via iPhone
    为什么要起个冲突的名字?故意迷惑自己吗...
    visaxin
        6
    visaxin  
       Nov 24, 2015
    这不是自己挖坑自己跳么
    valuedlute
        7
    valuedlute  
       Nov 24, 2015
    from xxx import xxx as xxx
    meloncrashed
        8
    meloncrashed  
       Nov 24, 2015 via iPhone
    读取 module ,先是当前目录,再是环境目录。
    改名吧
    roychan
        9
    roychan  
       Nov 24, 2015
    大概你需要 __init__.py
    martyyyyy
        10
    martyyyyy  
       Nov 24, 2015
    改名
    shotego
        11
    shotego  
    OP
       Nov 24, 2015
    @leavic 确实查了,然而感觉网上的教程都千篇一律,没有给出我到底该怎么解决这个问题
    shotego
        12
    shotego  
    OP
       Nov 24, 2015
    @roychan 求详细指导
    bbking
        13
    bbking  
       Nov 24, 2015
    添加__init__.py ,另外命名尽量有意义,少冲突
    clino
        14
    clino  
       Nov 24, 2015
    import sys; print sys.path

    你调整这里面的值看看,空串这个应该指的是当前目录吧
    shotego
        15
    shotego  
    OP
       Nov 24, 2015
    @leavic 好吧,其实我就是想通过这里例子试验一下相对导入和绝对导入,但是 from pkg import string 怎么就提示没有 module named string 呢?
    roychan
        16
    roychan  
       Nov 24, 2015
    @shotego 在你放程序的目录下新建一个空的 __init__.py ,然后运行 14 楼的命令看看。
    shotego
        17
    shotego  
    OP
       Nov 24, 2015 via iPhone
    @roychan t/238570 可能是我没有描述清楚,请看一下我重发的帖子,谢谢帮忙
    stillwater
        18
    stillwater  
       Nov 24, 2015
    absolute import 是按 sys.path 里的顺序挨个找的, sys.path[0]是启动 python 解释器的那个脚本文件所在的目录,如果找不到这个文件(比如直接进交互模式)就是一个空字符串,相当于是当前目录。你直接运行 python pkg/main.py 找的是 pkg 文件夹里的 urilib2 ,你 python 进交互模式再 import pkg.main 或者 python -m pkg.main 它会在 pkg 所在的目录找,找不到后会再在 python 的目录里找,找到的是标准库里的 urllib2

    你那个 init.py 加不加下划线和这个 import 没啥关系,不过你现在的这个包是个 namespace package ,和普通的不太一样,对你这个测试没啥影响。
    shotego
        19
    shotego  
    OP
       Nov 25, 2015
    @stillwater 弄懂了,非常感谢
    About     Help     Advertise     Blog     API     FAQ     Solana     1287Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 56ms UTC 17:31 PVG 01:31 LAX 10:31 JFK 13:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86