Python:importorror:/usr/local/lib/python2.7/lib-dynload//u io.so:undefined symbol:PyUnicodeUCS2\u Replace

Python:importorror:/usr/local/lib/python2.7/lib-dynload//u io.so:undefined symbol:PyUnicodeUCS2\u Replace,python,python-2.7,ubuntu-12.04,Python,Python 2.7,Ubuntu 12.04,我正在尝试构建一个triviol Python脚本,该脚本将从URL获取数据并将其保存到服务器上。请输入以下代码: #!/usr/bin/python import pprint import json import urllib2 def getUSGS_json(): print "Fetch data from URL" fileName = 'data/usgsEarthquacks_12Hrs.json' url = 'http://earthquake.u

我正在尝试构建一个triviol Python脚本,该脚本将从URL获取数据并将其保存到服务器上。请输入以下代码:

#!/usr/bin/python
import pprint
import json
import urllib2

def getUSGS_json():
    print "Fetch data from URL"

    fileName = 'data/usgsEarthquacks_12Hrs.json'
    url = 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson'
    data = urllib2.urlopen(url).read()

    if data:
        try:
            with open(fileName) as jsonGetData:
                filePut = open(fileName, 'w+')
                #add data
                filePut.write(data)
                filePut.close()

                j = json.load(jsonGetData)
                print j
        except Exception, e:
            print e
            raise
        else:
            pass
        finally:
            pass
    #end if
#end getUSGS_json

getUSGS_json()
运行脚本时,我会出现以下错误:

Traceback (most recent call last):
  File "geoJsonFetch.py", line 4, in <module>
    import urllib2
  File "/usr/local/lib/python2.7/urllib2.py", line 94, in <module>
    import httplib
  File "/usr/local/lib/python2.7/httplib.py", line 79, in <module>
    import mimetools
  File "/usr/local/lib/python2.7/mimetools.py", line 6, in <module>
    import tempfile
  File "/usr/local/lib/python2.7/tempfile.py", line 32, in <module>
    import io as _io
  File "/usr/local/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: /usr/local/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyUnicodeUCS2_Replace
回溯(最近一次呼叫最后一次):
文件“geoJsonFetch.py”,第4行,在
导入urllib2
文件“/usr/local/lib/python2.7/urllib2.py”,第94行,在
导入httplib
文件“/usr/local/lib/python2.7/httplib.py”,第79行,在
进口美托尔
文件“/usr/local/lib/python2.7/mimetools.py”,第6行,在
导入临时文件
文件“/usr/local/lib/python2.7/tempfile.py”,第32行,在
将io作为_io导入
文件“/usr/local/lib/python2.7/io.py”,第51行,在
导入
ImportError:/usr/local/lib/python2.7/lib-dynload//u io.so:undefined symbol:PyUnicodeUCS2\u Replace
我环顾四周,发现了类似的错误,如,但它们似乎并没有触及为什么有些人能够运行此代码,而我却不能。他们似乎都在处理与用C语言开发和使用Python访问C模块有关的问题

是Ubuntu版本还是Python版本

谢谢。

您已经(至少)安装了两个不同版本的Python,并且正在混合它们的文件。确保
$PYTHONPATH
$PYTHONHOME
sys.path
仅包含单个Python安装的文件夹。在您的情况下,一个安装在
/usr/local
中,另一个可能在
/usr


此外,您还可以尝试安装
virtualenvwrapper
并设置单独的python环境,以缓解可能出现的任何冲突。是一个关于安装和使用virtualenv的教程。

您是否应该使用
data=urlib2.urlopen(url.read()
?听起来您有多个Python安装在彼此之间互相践踏。具体是如何做到的?你能再详细一点吗?谢谢。为了进一步提供帮助,我需要知道您安装了哪些版本的Python,如何安装它们,以及如何启动应用程序。请编辑你的问题,给我这个信息。没有必要。Virtualenv解决方案对我很有效,而且似乎是一种更好的方法,可以让事情向前发展。如果你认为这个问题可能对其他人有利,我会竖起大拇指的。干杯