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
redhatping
V2EX  ›  Python

各位大牛,无法导入模块,这是为撒啊?

  •  
  •   redhatping · 2015-05-06 21:29:38 +08:00 · 3495 次点击
    这是一个创建于 3284 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ```python
    import printlist
    ```
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: No module named printlist

    发现错误,但是自己pip freeze

    有自己的模块, printlist

    printlist==1.0.0

    什么原因啊? 大牛们,帮帮看看
    第 1 条附言  ·  2015-05-06 23:18:28 +08:00
    pip uninstall printlist
    我做了一条命令:
    Uninstalling printlist-1.0.0:
    /Library/Python/2.7/site-packages/printlist-1.0.0-py2.7.egg

    为什么安装在python2.7里面 ,却 在python3可以导入, python2为什么不行,各位大牛,求解释。
    12 条回复    2015-05-07 16:53:25 +08:00
    jianghu52
        1
    jianghu52  
       2015-05-06 22:11:52 +08:00
    我导进去没啥问题。
    我不是大牛。只是猜。不知道你什么系统。有时候系统自带有python。比如centos,然后你又新装了一个python。这样的话,可能pip的安装地方不太对。
    所以你需要查一下你的程序调用的是什么python。然后在这个python的lib下有没有printlist这个包。
    redhatping
        2
    redhatping  
    OP
       2015-05-06 22:19:38 +08:00
    @jianghu52 我是mac系统, 有一个系统的python2.7 , 我自己安装了一个python3 ,现在我的环境下,在python2 .

    我是正常,pip安装 真不知道,最后调用的是,哪个pip?
    jianghu52
        3
    jianghu52  
       2015-05-06 22:31:24 +08:00
    pip是不调用的,关键是你的项目用的是python几。然后查一下printlist被安装到了python几下
    neoblackcap
        4
    neoblackcap  
       2015-05-06 22:33:03 +08:00
    是不是系统里面存在多个版本的Python啊?然后刚好启动的Python里面没有对应的模块,遇上就报错了

    建议开发使用virtualenv
    redhatping
        5
    redhatping  
    OP
       2015-05-06 22:36:54 +08:00
    @jianghu52 怎么查? 查下printlist被安装到了python几下
    redhatping
        6
    redhatping  
    OP
       2015-05-06 22:37:41 +08:00
    @neoblackcap 是的 , 我发现最后是python3安装上了。
    redhatping
        7
    redhatping  
    OP
       2015-05-06 22:43:37 +08:00
    pip freeze

    查安装包的时候,是不分python2, 还是python3 , 但是我们在
    pip install * , 它是如何安装的呢。选择的是,python2, 还是python3?
    firebell
        8
    firebell  
       2015-05-06 22:49:46 +08:00
    你时用的pycharm吧 估计你导入模块方式不对 在import之前得先添加一个包
    jianghu52
        9
    jianghu52  
       2015-05-06 22:58:25 +08:00
    @redhatping 在pip说穿了也是一个类库。所以你的python2.7下面也要装一个pip的。这样你调那个pip。他就会安装到哪个python上。
    redhatping
        10
    redhatping  
    OP
       2015-05-06 23:13:13 +08:00
    我做了一条命令:
    Uninstalling printlist-1.0.0:
    /Library/Python/2.7/site-packages/printlist-1.0.0-py2.7.egg

    为什么安装在python2.7里面 ,却 在python3可以导入, python2为什么不行,各位大牛,求解释。
    neoblackcap
        11
    neoblackcap  
       2015-05-06 23:26:11 +08:00
    @redhatping 我觉得你问问题根本就问错了

    我觉得你应该是安装到python 2.7的目录里面了,但是启动的时候是用python3的,所以就会出现找不到模块的情况。

    若是用python script.py来启动脚本的,你可以试试python -v来查看具体的python目录,要知道pip也是有版本区分的,你一样可以将pip的具体版本打出来看看,至于看是哪一个pip,可以试试用whereis的命令
    cosmosz
        12
    cosmosz  
       2015-05-07 16:53:25 +08:00
    which pip
    which python
    看看两个对应么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2278 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.