【问题标题】:Pycurl won't import on Raspberry PiPycurl 不会在 Raspberry Pi 上导入
【发布时间】:2013-09-12 22:49:40
【问题描述】:

我正在尝试在 Raspberry Pi 上使用 pycurl。我已经使用apt-get install python-pycurl 成功安装了 pycurl,并且我找到了一个小脚本可以用来查看它是否正常工作:

import pycurl
c = pycurl.Curl()
c.setopt(c.URL, 'http://news.ycombinator.com')
c.perform()

当我使用 sudo ./pycurltest.py 运行此脚本时,我收到一个错误:

./pycurltest.py: 1: ./pycurltest.py: import: not found
./pycurltest.py: 2: ./pycurltest.py: Syntax error: "(" unexpected

但是,如果使用 python 解释器并使用help(modules),我可以看到 pycurl 已安装。当我尝试在解释器中运行相同的脚本时,它可以工作,我得到:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

我在这里错过了什么?

【问题讨论】:

    标签: python raspberry-pi pycurl


    【解决方案1】:

    第一行具有误导性。

    ./pycurltest.py: 1: ./pycurltest.py: import: not found
    

    看起来解释器提示找不到空白导入,或者它正在寻找:

    import Pycurses#<---something else is here
    

    检查您的 .py 脚本在行尾没有任何奇怪的字符,并且它有一个正确的换行符:

    import pycurl
    

    来自pythondocs

    物理行是由行尾序列终止的字符序列。在源文件中,可以使用任何标准平台行终止序列 - 使用 ASCII LF(换行)的 Unix 形式,使用 ASCII 序列 CR LF(后跟换行)的 Windows 形式,或使用 ASCII 的旧 Macintosh 形式CR(返回)字符。无论平台如何,所有这些形式都可以平等地使用。嵌入 Python 时,应使用标准 C 换行符约定将源代码字符串传递给 Python API(表示 ASCII LF 的 \n 字符是行终止符)。

    【讨论】:

    • 我实际上很尴尬地承认这一点,但问题实际上是我错过了脚本顶部的#!/usr/bin/env python。你的回答让我回过头来更仔细地看看我在做什么。我完全是新手错误。谢谢。
    • 这很有趣。我从来没有遇到过 .py 脚本中缺少 hash-bang 的问题。我知道这一点,因为我总是忘记添加它们。
    猜你喜欢
    • 2018-11-23
    • 2022-09-28
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2015-08-06
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多