首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows上解决python环境中的错误

在Windows上解决python环境中的错误
EN

Stack Overflow用户
提问于 2021-03-06 20:36:02
回答 3查看 173关注 0票数 0

我刚开始遇到一些python的问题,我想以适当的方式解决这个问题,作为最后的手段,如果有必要的话,我会重新安装。

在Python3之前,我安装了Python2.7。然后我在它旁边安装了Python 3.7。我不记得路径环境是自动设置的,还是我手动设置的。我的系统变量path包含:

代码语言:javascript
运行
复制
C:\Python27\;C:\Python27\Scripts;

所以我相信这是自动设置的。然而,我的用户变量path包含:

代码语言:javascript
运行
复制
C:\Python37\;C:\Python37\Scripts;

python安装程序会使用用户环境吗?我不确定,所以我不知道是不是我自己设置的。

但是,用户变量路径还包含:

代码语言:javascript
运行
复制
%PYTHON_DIR%\Python37\Scripts\;%PYTHON_DIR%\Python37\;%PYTHON_DIR%\Python36\Scripts\;%PYTHON_DIR%\Python36\

再说一次,我不知道我是否自己设置了它,我不记得在我的用户变量中设置了它:

代码语言:javascript
运行
复制
PYTHON_DIR = C:\Users\pcuser\AppData\Local\Programs\Python

它就在那里,我在那个路径下有两个文件夹。,...but。

在我的用户变量path中也有如下内容:

代码语言:javascript
运行
复制
PYTHON = os.path.expanduser(os.getenv('PYTHON', 'C:\\Python37\\python.exe'))

我知道我创建了一个python环境。我只需要找它,因为我现在不记得在哪里可以找到它。

这就是我遇到的问题。我也在MSYS中使用Python,并从C:\msys64\usr\bin中的Python中得到以下错误:

代码语言:javascript
运行
复制
Could not find platform independent libraries <prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x0000000800018040 (most recent call first):
      0 [main] python 1489 cygwin_exception::open_stackdumpfile: Dumping stack t
race to python.exe.stackdump

我将PYTHONHOME设置为C:\msys64\usr\bin。这并不能解决问题。我还删除了PYTHON_DIR,以查看是否存在冲突,但这并没有解决问题。相反,我得到了另一个错误:

代码语言:javascript
运行
复制
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x0000000800018040 (most recent call first):
      0 [main] python 143 cygwin_exception::open_stackdumpfile: Dumping stack tr
ace to python.exe.stackdump

所以在我看来,我的Python环境搞得一团糟,我想学习如何正确地设置它,希望不用重新开始。我怎样才能摆脱这些错误,并获得一个合适的python环境?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-09 02:41:42

经过一段时间的故障排除后,我能够发现问题所在。C:\msys64\usr\lib\python3.8中的某些文件不知何故被删除了,或者安装了python 3.8,但没有正确安装。所以我重新安装了一次,python不再抱怨缺少编码和模块。

在所有python安装上运行测试

代码语言:javascript
运行
复制
MINGW64 ~
# python
Python 3.8.2 (default, Feb 27 2020, 05:27:33)  [GCC 9.2.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

# python setup_build.py install
running install
running build
running build_ext
skipping 'geotools/geotools.c' Cython extension (up-to-date)
running install_lib
copying build/lib.mingw-3.8/geotools-cpython-38.dll -> C:/msys64/mingw64/lib/python3.8/site-packages
running install_egg_info
Writing C:/msys64/mingw64/lib/python3.8/site-packages/geotools-0.1.0-py3.8.egg-info

MINGW32 ~
# python
Python 3.8.2 (default, Feb 27 2020, 06:39:26)  [GCC 9.2.0 32 bit] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

# python setup_build.py install
running install
running build
running build_ext
dllwrap: WARNING: dllwrap is deprecated, use gcc -shared or ld -shared instead

skipping 'geotools/geotools.c' Cython extension (up-to-date)
running install_lib
running install_egg_info
Removing C:/msys64/mingw32/lib/python3.8/site-packages/geotools-0.1.0-py3.8.egg-info
Writing C:/msys64/mingw32/lib/python3.8/site-packages/geotools-0.1.0-py3.8.egg-info

C:\WINDOWS\system32>py -3.7 -m pip list
Package                       Version
----------------------------- ---------
...

C:\WINDOWS\system32>py -2.7 -m pip list
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please
 upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop s
upport for Python 2.7 in January 2021. More details about Python 2 support in pi
p can be found at https://pip.pypa.io/en/latest/development/release-process/#pyt
hon-2-support pip 21.0 will remove support for this functionality.
Package                       Version
----------------------------- ----------
...

C:\WINDOWS\system32>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\WINDOWS\\SYSTEM32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\
\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27
', 'C:\\Users\\pcUser\\AppData\\Roaming\\Python\\Python27\\site-packages', 'C:\\Py
thon27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\pybind11-2.6.2-p
y2.7.egg']
>>> 

C:\WINDOWS\system32>py -3
Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\Users\\pcUser\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip'
, 'C:\\Users\\pcUser\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\User
s\\pcUser\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\pcUser\\App
Data\\Local\\Programs\\Python\\Python37', 'C:\\Users\\pcUser\\AppData\\Roaming\\Py
thon\\Python37\\site-packages', 'C:\\Users\\pcUser\\AppData\\Local\\Programs\\Pyth
on\\Python37\\lib\\site-packages']
>>>

C:\WINDOWS\system32>py -3.6 -m pip list
Package         Version
--------------- --------
...

我的python环境很好。一切都运行得很好。:)

我学到的..。使用PYTHONHOME和PYTHONPATH不是必须的,因为许多人建议...尽管许多人都有同样的建议。从我的经验来看--从新手的角度来看--我不推荐使用它们。也许它们适用于其他人,但无论我如何设置--无论是C:\Python37或C:\Python37\lib,还是C:\Users\pcUser\AppData\Local\Programs\Python\Python37或C:\msys64\usr\lib\python3.8;C:\msys64\usr\lib\python3.8\site-packages;C:\msys64\usr\lib\python3.8\lib-dynload;C:\msys64\usr\lib\python3.8\distutils,我都会遇到错误

它们都在一个或另一个分期付款时返回一堆错误。所以它对我不起作用。然而,可能对其他人也有效。我很高兴,大概过了60多个小时,我的python环境就恢复正常了。:)

票数 0
EN

Stack Overflow用户

发布于 2021-03-06 20:57:23

就我个人而言,我使用miniconda

Miniconda是anaconda的小版本,它是一个优秀的环境管理器。Miniconda没有包含gui,我觉得和它一起工作更好。

要创建环境,请使用

conda create -n my-test-env python=3.9

您可以使用以下命令激活它

conda activate my-test-env

您可以使用以下命令安装其他软件包

conda install numpy

然而,并不是所有的python包在conda中都可用。您可以通过安装pip来安装任何pip包。

代码语言:javascript
运行
复制
conda install pip
pip install numpy
票数 0
EN

Stack Overflow用户

发布于 2021-03-07 04:45:32

PYTHONHOME设置为像C:\msys64\usr\bin这样的值肯定是错误的;如果C:\Python37\Lib是它的库安装位置,那么它应该类似于Python值。但是尝试简单地取消设置它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66505681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档