Pycharm 无法安装包
Pycharm cant install packages
我在使用 PyCharm 安装任何软件包时遇到问题。我的名字 "João" 由于字符 'ã' 有问题。
C:\Users\Jo\xe3o\AppData\Local\Temp\pycharm-packaging0.tmp\...
错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe3' in position 12: ordinal not in range(128)
我可以将什么更改为固定的?
这是一个 documented problem 点子。
这是一位用户在问题线程上发布的漂亮 straight-forward 解决方案:
Python 2 隐式尝试将字节从 p_path 解码为 unicode 作为 ascii,因为那是不可能的,你应该在 LockBase 的 __init__.py 中添加解码为 latin1(在 C:\Python27\Lib\site-packages\pip-7.0.3-py2.7.egg\pip_vendor\lockfile\__init__.py
):
self.hostname = socket.gethostname()
应该改成这样:
self.hostname = socket.gethostname().decode('latin1')
如果这不起作用,这里是 issue OP 发布的更令人痛苦的解决方案,但这是一个 巨大的 痛苦:
- 按照这些说明将您的名字(不丢失数据)更改为完全 ascii 版本http://www.sevenforums.com/tutorials/147545-user-profile-folder-change-user-account-folder-name.html
- 删除 Python
的所有版本
- 重新安装 Python 3.4(其中包括 pip - 您大概也可以重新安装 2.7 并单独安装 pip,但我没有)
- 删除用户变量PATH和系统变量Path中对Python27的所有引用。 (开始->右击计算机->属性->高级系统设置->环境变量)
- 确保它们都包含 C:\Python34 和 C:\Python34\Scripts
添加一些重启来品尝
Pro-tip:避免给你的 children 名字加上 non-ascii 个字符
我在使用 PyCharm 安装任何软件包时遇到问题。我的名字 "João" 由于字符 'ã' 有问题。
C:\Users\Jo\xe3o\AppData\Local\Temp\pycharm-packaging0.tmp\...
错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe3' in position 12: ordinal not in range(128)
我可以将什么更改为固定的?
这是一个 documented problem 点子。
这是一位用户在问题线程上发布的漂亮 straight-forward 解决方案:
Python 2 隐式尝试将字节从 p_path 解码为 unicode 作为 ascii,因为那是不可能的,你应该在 LockBase 的 __init__.py 中添加解码为 latin1(在 C:\Python27\Lib\site-packages\pip-7.0.3-py2.7.egg\pip_vendor\lockfile\__init__.py
):
self.hostname = socket.gethostname()
应该改成这样:
self.hostname = socket.gethostname().decode('latin1')
如果这不起作用,这里是 issue OP 发布的更令人痛苦的解决方案,但这是一个 巨大的 痛苦:
- 按照这些说明将您的名字(不丢失数据)更改为完全 ascii 版本http://www.sevenforums.com/tutorials/147545-user-profile-folder-change-user-account-folder-name.html
- 删除 Python 的所有版本
- 重新安装 Python 3.4(其中包括 pip - 您大概也可以重新安装 2.7 并单独安装 pip,但我没有)
- 删除用户变量PATH和系统变量Path中对Python27的所有引用。 (开始->右击计算机->属性->高级系统设置->环境变量)
- 确保它们都包含 C:\Python34 和 C:\Python34\Scripts 添加一些重启来品尝 Pro-tip:避免给你的 children 名字加上 non-ascii 个字符