You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python IDE无法启动,命令行执行python触发TypeError错误求助

解决ArcGIS绑定Python2.7启动报错:TypeError: str() takes at most 1 argument (2 given)

这个问题我之前帮同事排查过,本质是ArcGIS自带的老版本Python2.7和系统编码环境变量冲突导致的,下面是具体的排查和解决步骤:

第一步:检查并清理冲突的环境变量

这是最常见的原因,系统里的PYTHONIOENCODING、LC_ALL或者LANG环境变量如果设置了非ASCII编码,就会触发这个错误:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「用户变量」和「系统变量」里找上述几个变量,如果存在,直接删除它们,或者把值改成UTF-8、cp1252这类ASCII兼容的编码
  • 重启命令提示符,再输入python测试能不能正常启动

第二步:临时验证方案(不用修改环境变量)

如果不想马上改环境变量,可以先在命令行里临时清空可能冲突的变量:

set PYTHONIOENCODING=
set LC_ALL=
set LANG=
python

如果这样能正常启动,那就说明确实是环境变量的问题,按第一步的方法永久修改即可。

第三步:修改site.py代码(环境变量无效时用)

如果上面的方法都不行,那可以直接修改Python自带的site.py文件来绕过这个错误:

  1. 找到报错里的文件路径:C:\Python27\ArcGIS10.5\lib\site.py,用记事本或者VS Code打开它
  2. 定位到encodings\__init__.py里报错的那一行(也就是encoding = str(encoding, "ascii"))
  3. 把这一行改成:
    encoding = str(encoding)
    
    或者改成Python2更规范的写法:
    encoding = encoding.decode("ascii")
    
  4. 保存文件后,再尝试启动Python或者IDE

为什么会出现这个错误?

ArcGIS绑定的Python2.7版本比较陈旧,对系统编码环境的适配性差。当系统环境变量里的编码参数被传入Python后,它被当成了bytes对象,而Python2的str()函数只接受1个参数(Python3的str()才支持两个参数做编码转换),所以就触发了这个类型错误。

内容的提问来源于stack exchange,提问作者jmajcan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:04:00