代码之家  ›  专栏  ›  技术社区  ›  Drewdin

Python代码使用idle运行,但在命令行失败?

  •  1
  • Drewdin  · 技术社区  · 15 年前

    Traceback (most recent call last):
      File "test.py", line 1, in ?
        import urllib.request
    ImportError: No module named request
    

    我验证了我使用的是Python3.1.2。有什么建议或想法可以解释为什么在命令行中失败?

    我的代码:

    import urllib.request
    import time
    
    price = 99.99
    while price > 1.01:
        time.sleep(3)
        page = urllib.request.urlopen("http://www.beans-r-us.biz/prices.html")
        text = page.read().decode("utf8")
        where = text.find('>$')
        start_of_price = where + 2
        end_of_price = start_of_price + 4
        price = float(text[start_of_price:end_of_price])
    
    print ("Buy!")
    
    5 回复  |  直到 15 年前
        1
  •  4
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

    urllib.request 与Python3一起引入。当您从命令行运行代码时,很可能使用的是较旧的Python 2.x二进制文件。

    类型 python --version

    根据Drewdin的评论进行编辑

    在运行MacOSX的Python3.1.2安装程序时,我看到:

    注意:默认情况下,这个包不会更新shell配置文件,也不会在/usr/local中安装文件。随时双击Update Shell Profile使3.1.2成为默认的Python。

    安装程序将应用程序放入“Python3.1” 在“应用程序”文件夹中,以及 /Library/Frameworks/Python.framework。它可以随意放置 链接到/usr/local中的命令行工具, 默认情况下,您必须在

    因此,根据安装方式的不同,您可能已经在 /usr/local/bin ,这将在你的道路上。如果在安装时选择此选项,则只需键入 python3 python3.1 在您的shell中获取更新版本。

    否则,请双击该“更新Shell配置文件”,或将其添加到您的路径:

    export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.1/bin

    python Unix/Linux环境中的命令别名,因为它可能会干扰依赖于默认安装的Python的系统进程/命令。

        2
  •  0
  •   Charlie Martin    15 年前

    嗯,错误是说它找不到库,所以环境之间有些不同。

    这是一个 tutorial on python modules 那会有帮助的。

    查看PYTHONPATH环境变量:

     $ echo $PYTHONPATH
    

    至少在一个UNIX机器上。(老实说,我不记得窗户了。)

    还要看看Python的内置路径

     print sys.path
    

    很可能PYTHONPATH在命令行环境和空闲环境之间有所不同。

        3
  •  0
  •   ghostdog74    15 年前

    你也可以 from urllib import request

    或者在通话中指定

    import urllib
    urlib.request (...)
    
        4
  •  0
  •   Parker    15 年前

    Drewdin,当您在终端命令行中键入“python”时,它将显示正在运行的版本。如果不是3.1,也就是引入urllib.request的时候,请尝试 python3.1 test.py

    还有,试试看 import urllib 而不是 import urllib.request

        5
  •  0
  •   David Basarab    13 年前

    首先,我安装了Python 3,因为ubuntu当前运行的版本是Python 2:

    sudo apt-get install python3
    

    然后,必须安装相应的空闲:

    sudo apt-get install idle-python3.2
    

    按alt+F2打开跑步对话框, idle-python3.2 '点击返回-现在您将看到python shell在屏幕顶部显示'python 3.2.2'!