Python安装及Bug提示(持续更新)

python安装


* _ *

python安装过程

官网下载安装包


安装python

  • 运行python-3.8.2.exe(举了栗子)
  • 修改安装路径
  • 将python加入到环境变量中
    • 在环境变量的path中,添加 x:\yyy\python3.8.2 和 x:\yyy\python3.8.2\Scripts\
  • cmd + python/py即可实现

多个python版本共存

  • 在环境变量的path中,添加新的 x:\yyy\python2.7 和 x:\yyy\python2.7\Scripts\即可
  • 记得把python2目录下的python.exe改名为python2.exe
  • 在这里插入图片描述

对指定python版本安装\卸载相应库

  • 安装指定的python库 pip install XXX==x.y.z
  • 卸载指定的python库 pip uninstall XXX==x.y.z
  • 指定python版本下安装 \ 卸载库方法1:打开cmd命令窗口, 进入自己安装python路径下的Scripts路径:
    在这里插入图片描述
  • 指定python版本下安装 \ 卸载库方法2:直接在python的Scripts路径上方的路径文件夹输入cmd,然后直接pip install xxx即可
    在这里插入图片描述

- _ -

Bug


* _ *

Python2出错

编码错误

SyntaxError: Non-ASCII character '\xe5' in file G:/xxx/python2/test.py on line 8, 
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
语法错误:第8行的G:/xxx/python2/test.py文件中的非ASCII字符'\ xe5',
但未声明编码;有关详细信息,请参见http://www.python.org/peps/pep-0263.html

对错误的解读(不一定对系列)

  • python2默认ASCII编码、解码文件。ASCII中不包含中文,所以我们需要将python2的编码由默认的ASCII,改为万国码(utf-8)

解决方法

# !/usr/bin/env python
# -*- coding:utf-8 -*-

arcpy库出错

路径报错

# 假如说路径是r'Z:\xxx\工作\大块\ZF副本 - 副本'
Traceback (most recent call last):
  File "G:\WuDownload\python2\ɾ���ֶ�.py", line 18, in <module>
    fieldList = arcpy.ListFields(shpFileMap)
  File "C:\Program Files\ArcGIS\Server\arcpy\arcpy\__init__.py", line 1119, in ListFields
    return gp.listFields(dataset, wild_card, field_type)
  File "C:\Program Files\ArcGIS\Server\arcpy\arcpy\geoprocessing\_base.py", line 344, in listFields
    self._gp.ListFields(*gp_fixargs(args, True)))
RuntimeError: ERROR 999999: Error executing function.

对错误的解读(不一定对系列)

  • arcpy在使用 含空格路径 时会报错, python2用的比较少,未去深究是arcpy的原因还是python2的原因,待以后填坑吧

解决方法

# 将路径改为r'Z:\xxx\工作\大块\ZF副本-副本' 即可。

- _ -

Python3出错

shapeFile库出错

dbf文件的数据条数和shp文件的要素条数不一致

shapefile.ShapefileException: When saving both the dbf and shp file, the number of records (79805) must correspond with the number of shapes (0)

对错误的解读(不一定对系列)

  1. 意思就是dbf里有79805个数据,而shp的要素(点、线、面)条数为0。
  2. 需要添加要素(点、线、面)条数即可
  3. 在本次实践中,发现一个问题,在对rshp文件读取时,读取完要素的数据再读取dbf的数据时,第一次读取一行数据时是正确的,第二次就错误了,我判定读取到的dbf文件数据发生了移位。我提供的解决方法是重读rShp这个对象。

第一次读取正常

第一次读取正常

在这里插入图片描述

之后读取异常

解决方法

对于面要素来说:


for i in range(rShp.numRecords):
	# 重读rShp对象的文件
	rShp = shapefile.Reader(mapBaseFile)
	
	# rShp为读shp文件的对象
	baseLinkPoint = [[list(x) for x in rShp.shape(i).points]]
	# print(baseLinkPoint)
	'''
	形如这样的内容
	  [[[1474134.4974841978, 4442678.2770431675],
		[1474138.1428716443, 4442679.826245229], 
		[1474140.1595595686, 4442683.317672637], 
		[1474134.4974841978, 4442678.2770431675]]]
	'''
	# wShp为写shp文件的对象,添加shp文件的要素
	wShp.poly(baseLinkPoint)
	
	# 往dbf文件添加数据
	wShp.record(rShp.record(i)[0],
	            rShp.record(i)[1],
	            rShp.record(i)[2],
	            rShp.record(i)[3],
	            rShp.record(i)[4],
	            rShp.record(i)[5])
	            
	# 删除rShp变量
     del rShp

数据类型

元组未加" , "

# 配置静态资源
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    #             根目录      文件名
    os.path.join(BASE_DIR, 'pstatic')
)
STATIC_ROOT = os.path.join(BASE_DIR, 'AllStatic')
-----------------------------------------------------------------
ERRORS:
?: (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or list.
	HINT: Perhaps you forgot a trailing comma?

System check identified 1 issue (0 silenced).

对错误的解读(不一定对系列)

  1. 当你使用了元组,但是当前元组只有一个数,如果只是单纯的"(A)",python会认为这只是一个普通的变量。然后你再用读取元组的方式去使用他的话,他当然就会报错啦

解决方法

# 配置静态资源
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    #             根目录      文件名
    # 在这里加一个                   " , "
    os.path.join(BASE_DIR, 'pstatic'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'AllStatic')

读取文件错误

utf-8不包含,而gbk包含

# 读取Shp数据
# 在创建读对象的时候不会报错,当你读取到某一数值时,例如 ü 时,会报错 
rShp = shapefile.Reader(mapShpFile)
-----------------------------------------------------------------
'utf-8' codec can't decode byte 0xa8 in position 2: invalid start byte

对错误的解读(不一定对系列)

GBK主要用于中文编码,包含全部中文字符,utf8包含全世界所有国家需要用到的字符;

解决方法

# 读取Shp数据
rShp = shapefile.Reader(mapShpFile, encoding='gbk')
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值