微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决 Windows 上 python 环境中的错误

如何解决解决 Windows 上 python 环境中的错误

我刚开始在使用 python 时遇到一些问题,我想以正确的方式解决这个问题,作为最后的手段,如果必须的话,重新安装。

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

data.password

所以我相信这是自动设置的。 但是我的用户变量路径包含:

req.body.password

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

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

C:\Python27\;C:\Python27\Scripts;

同样,我不知道我是否自己设置了这个,而且我不记得在我的用户变量中设置了这个:

C:\python37\;C:\python37\Scripts;

...但它就在那里,而且我在那个路径中有两个文件夹。

enter image description here

我的用户变量路径中也有这个:

%PYTHON_DIR%\python37\Scripts\;%PYTHON_DIR%\python37\;%PYTHON_DIR%\python36\Scripts\;%PYTHON_DIR%\python36\

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

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

PYTHON_DIR = C:\Users\pcuser\AppData\Local\Programs\Python

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

PYTHON = os.path.expanduser(os.getenv('PYTHON','C:\\python37\\python.exe'))

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

解决方法

就我个人而言,我使用 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 包

conda install pip
pip install numpy
,

PYTHONHOME 设置为 C:\msys64\usr\bin 之类的值绝对是错误的;如果这是 Python 安装其库的地方,它应该类似于 C:\Python37\Lib。但请尝试简单地取消设置。

,

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

在所有 python 安装上运行测试

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,06:39:26)  [GCC 9.2.0 32 bit] on win32
Type "help","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","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",'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 环境恢复了工作状态。 :)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。