ArcGIS Pro 1.4 Pandas包导入的一个Bug修复全过程
2017-03-06 12:51
387 查看
Pandas——熊猫包是Python里面一个超级神器,特别对于熟悉R语言的同学(比如虾神我这种),对pandas里面的DataFrame那是犹如他乡遇故知般的热泪盈眶啊。
而且Pandas在大数据处理领域,号称所有包里面的的No.1,因为它的存在,GB级上亿条的数据可以直接使用单机完成,具体可以查看下面文章:
《用Python Pandas处理亿级数据》
http://python.jobbole.com/84118/
这个包不但强大,而且还挺复杂,虽然网上各种流传啥《十分钟搞定Pandas》类似的文章,但是下面是Pandas的官方文档,Look:
1937页的官方文档……打印出来砸死人妥妥没问题。
难怪会出现各种简化教程的,否则啃官方文档都能把人撑死。
正因为这个神器包如此的流弊,所以虾神习惯了在任何Python的环境下都把它安装好,用起来。这段时间正好在弄公司要求推广的ArcGIS新的桌面客户端软件ArcGIS Pro,所以顺手也准备在Pro里面用起来(至于Pro是啥,大家有兴趣去网上找找资料,简单来说这个软件有如下优点:
1、64位客户端(专门为了灭ArcMap的32位的)
2、二三维一体化。
3、强大的本地、网络一体化资源利用。
4、帅……好吧,这一条就够了。
最后,Pro用的Python是3.5的版本……意味中Python中文编码再也不是问题了。
放张图片出来:
但是我在Pro中使用Pandas的时候,突然出了这样一个问题:
我去……这一刻,虾神的表情这样的:
embedded null byte……嵌入了空的字节是什么鬼……
回头检查了一下报错的Python源文件calencar.py,这是一个设置返回时间的文件,然后看看报错的语句:funcs(self.format)……
瞬间就恍然大悟了。
这是因为中文版操作系统中时间格式设置的问题,ArcGIS Pro读取系统的时间设置,燃鹅,Python用的是默认的设置,这样就起了冲突了,所以如果先运行一下语句:
#把Python的本地格式设为英文模式
import locale
locale.setlocale(locale.LC_ALL,'en')
再导入pandas的话:
就木有问题了。
为了方便,可以把这句话加入到报错的py文件中:
在D:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\calendar.py
前面那一段,是你ArcGIS Pro安装的位置,自己找,后面是要修改的文件
在头部加入以下代码:
_locale.setlocale(_locale.LC_ALL, 'en')
如下所示:
加入完成保存,重启ArcGIS Pro,在导入pandas的时候,就木问题了:
下面测试一下:
打完收工。
而且Pandas在大数据处理领域,号称所有包里面的的No.1,因为它的存在,GB级上亿条的数据可以直接使用单机完成,具体可以查看下面文章:
《用Python Pandas处理亿级数据》
http://python.jobbole.com/84118/
这个包不但强大,而且还挺复杂,虽然网上各种流传啥《十分钟搞定Pandas》类似的文章,但是下面是Pandas的官方文档,Look:
1937页的官方文档……打印出来砸死人妥妥没问题。
难怪会出现各种简化教程的,否则啃官方文档都能把人撑死。
正因为这个神器包如此的流弊,所以虾神习惯了在任何Python的环境下都把它安装好,用起来。这段时间正好在弄公司要求推广的ArcGIS新的桌面客户端软件ArcGIS Pro,所以顺手也准备在Pro里面用起来(至于Pro是啥,大家有兴趣去网上找找资料,简单来说这个软件有如下优点:
1、64位客户端(专门为了灭ArcMap的32位的)
2、二三维一体化。
3、强大的本地、网络一体化资源利用。
4、帅……好吧,这一条就够了。
最后,Pro用的Python是3.5的版本……意味中Python中文编码再也不是问题了。
放张图片出来:
但是我在Pro中使用Pandas的时候,突然出了这样一个问题:
我去……这一刻,虾神的表情这样的:
embedded null byte……嵌入了空的字节是什么鬼……
回头检查了一下报错的Python源文件calencar.py,这是一个设置返回时间的文件,然后看看报错的语句:funcs(self.format)……
瞬间就恍然大悟了。
这是因为中文版操作系统中时间格式设置的问题,ArcGIS Pro读取系统的时间设置,燃鹅,Python用的是默认的设置,这样就起了冲突了,所以如果先运行一下语句:
#把Python的本地格式设为英文模式
import locale
locale.setlocale(locale.LC_ALL,'en')
再导入pandas的话:
就木有问题了。
为了方便,可以把这句话加入到报错的py文件中:
在D:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\calendar.py
前面那一段,是你ArcGIS Pro安装的位置,自己找,后面是要修改的文件
在头部加入以下代码:
_locale.setlocale(_locale.LC_ALL, 'en')
如下所示:
加入完成保存,重启ArcGIS Pro,在导入pandas的时候,就木问题了:
下面测试一下:
打完收工。
相关文章推荐
- erlang关闭一个socket进入死循环的bug修复过程
- 本地化环境下ArcGIS Python API中的SSL及locale的bug修复过程
- Android一个权限相关的bug修复过程
- 修复一个吉日嘎拉MSSQL数据库版中的分页存储过程bug
- 一个诡异的BUG: Python导入的模块运行过程中变成了None
- 记一个bug定位与修复过程
- 一个古怪的bug调试过程
- 外部点文件导入ArcGIS差值过程
- 一个ArcGIS Javascript API的BUG和处理办法 - 调用两次Draw工具条deactivate方法导致的错误
- bbossgroups-1.0 rpc框架修复了一个bug(bug描述见正文)
- VS2010 使用过程中碰到的一个DLL导入失败的问题
- 分享一个IPhone bug的分析过程(兼xcode编译器应该改进的地方)
- 开发过程碰到的一个bug
- 修复WPF Silverlight ListBox控件的一个Bug
- 修复WPF Silverlight ListBox控件的一个Bug
- 导入时遇到一个BUG?
- 一个ArcGIS Javascript API的BUG和处理办法 - 调用两次Draw工具条deactivate方法导致的错误
- ArcGIS9.2下的一个小Bug
- Delphi中MediaPlayer控件的一个Bug即修复
- wingdb开发过程中遇到一个比较“头疼”的bug