有关在 Windows 上使用 Python 的常见问题解答

2023-09-17 19:44:29

 🎬 岸边的风:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

使用 pip install 解决包安装问题

使用 WSL 解决 pip 安装问题

什么是 py.exe?

为什么运行 python.exe 会打开 Microsoft Store?

当我复制粘贴文件路径时,为什么在 Python 中不起作用?

什么是 PYTHONPATH?

何处可以找到有关打包和部署的帮助?

如果需要在不同的计算机上工作,该怎么办?

如果我习惯使用 PyCharm、Atom、Sublime Text、Emacs 或 Vim,该怎么办?

如何将 Mac 快捷键映射到 Windows 快捷键?


使用 pip install 解决包安装问题

安装失败的原因有很多 - 在很多情况下,正确的解决方案是联系包开发人员。

出现问题的常见原因是尝试将包安装到你无权修改的位置。 例如,默认的安装位置可能需要管理权限,但是默认情况下,Python 没有管理权限。 最佳解决方案是创建一个虚拟环境并在其中进行安装。

某些包包括本机代码,需要 C 或 C++ 编译器才能进行安装。 一般来说,包开发人员应发布预编译的版本,但通常没有发布。 如果安装了适用于 Visual Studio 的生成工具并选择了 C++ 选项,则某些包可能会正常运行,但是在大多数情况下,需要联系包开发人员。

请关注有关 StackOverflow 的讨论

使用 WSL 解决 pip 安装问题

在适用于 Linux 的 Windows 子系统(WSL 或 WSL2)上使用 pip 安装 Flask 等包时,例如使用 python3 -m pip install flask,你可能会特别遇到如下错误:

Bash复制

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection
object at 0x7f655471da30>: Failed to establish a new connection: [Errno -3]
Temporary failure in name resolution')': /simple/flask/

调查此问题时,你可能会遭遇几个陷阱,其中没有一个能通过 WSL Linux 发行版特别高效地解决。 (警告:在 WSL 上,请勿尝试编辑 resolv.conf,该文件是一个符号链接,修改它会导致出现大量问题)。 除非你正在运行二级市场防火墙,否则只需重新安装 pip 可能就能解决问题:

Bash复制

sudo apt -y purge python3-pip
sudo python3 -m pip uninstall pip
sudo apt -y install python3-pip --fix-missing

*有关进一步的讨论,请查看 GitHub 上的 WSL 产品存储库。感谢我们的用户社区在 docs 中参与此问题的解决

什么是 py.exe?

由于要处理不同类型的 Python 项目,因此最终可能会在计算机上安装多个版本的 Python。 由于所有这些版本都使用 python 命令,因此你使用的是哪个版本的 Python 可能并不明显。 作为标准,建议使用 python3 命令(或 python3.7 以选择特定版本)。

py.exe 启动器将自动选择已安装的最新版本的 Python。 此外,还可以使用 py -3.7 之类的命令来选择特定版本,或者使用 py --list 来查看可使用的版本。 但是,仅当使用从 python.org 安装的 Python 版本时,py.exe 启动器才会正常运行。从 Microsoft Store 安装 Python 时,不包含 py 命令。 对于 Linux、macOS、WSL 和 Microsoft Store 版本的 Python,应使用 python3(或 python3.7)命令。

为什么运行 python.exe 会打开 Microsoft Store?

为了帮助新用户找到正确的 Python 安装,我们向 Windows 添加了一个快捷方式,可直接转到 Microsoft Store 中发布的最新版本的社区包。 该包无需管理员权限即可轻松安装,并将默认的 python 和 python3 命令替换相应的真实命令。

使用任何命令行参数运行快捷方式可执行文件都将返回错误代码,指示未安装 Python。 这是为了防止批处理文件和脚本意外打开 Store 应用。

如果使用 python.org 中的安装程序安装 Python 并选择“添加到 PATH”选项,则新的 python 命令将优先于快捷方式。 请注意,其他安装程序可能以低于内置快捷方式的优先级添加 python

通过从“开始”打开“管理应用执行别名”,找到“应用安装程序”Python 条目并将其切换为“关闭”,无需安装 Python 即可禁用快捷方式。

当我复制粘贴文件路径时,为什么在 Python 中不起作用?

Python 字符串对特殊字符使用“转义符”。 例如,要在字符串中插入换行符,应键入 \n。 由于 Windows 上的文件路径使用反斜杠,因此某些部分可能已转换为特殊字符。

要将路径粘贴为 Python 中的字符串,请添加 r 前缀。 这表示它是一个 raw 字符串,除 \” 外,将不使用任何转义字符(可能需要删除路径中的最后一个反斜杠)。 因此,路径可能如下所示:r"C:\Users\MyName\Documents\Document.txt"

在 Python 中使用路径时,建议使用标准 pathlib 模块。 这样你就可以将字符串转换为丰富的 Path 对象,无论它使用正斜杠还是反斜杠,都可以一致地进行路径操作,从而使代码在不同的操作系统上可以更好地工作。

什么是 PYTHONPATH?

Python 使用 PYTHONPATH 环境变量来指定可以从中导入模块的目录列表。 运行时,可以检查 sys.path 变量以查看导入某些内容时将要搜索的目录。

要在“命令提示符”中设置此变量,请使用:set PYTHONPATH=list;of;paths

要在 PowerShell 中设置此变量,请在启动 Python 之前使用:$env:PYTHONPATH=’list;of;paths’

不建议通过“环境变量”设置全局设置此变量,因为使用它的可能是任何版本的 Python,而非要使用的版本。

何处可以找到有关打包和部署的帮助?

DockerVSCode 扩展有助于快速打包和部署 Dockerfile 和 docker-compose.yml 模板(为项目生成正确的 Docker 文件)。

借助 Azure Kubernetes 服务 (AKS),可以在按需缩放资源的同时部署和管理容器化应用程序。

如果需要在不同的计算机上工作,该怎么办?

通过设置同步,可以使用 GitHub 在不同安装之间同步 VS Code 设置。 如果在不同的计算机上工作,这有助于在它们之间保持一致的环境。

如果我习惯使用 PyCharm、Atom、Sublime Text、Emacs 或 Vim,该怎么办?

VSCode 扩展键映射有助于打造你熟悉的环境。

如何将 Mac 快捷键映射到 Windows 快捷键?

Windows 计算机和 Macintosh 的某些键盘按钮和系统快捷方式略有不同。 此 Mac 到 Windows 的转换指南涵盖了基础知识。

更多推荐

MySQL-DML语句

DML语句Create单行插入数据多行插入数据插入否则更新replaceinto查看受影响行数的函数Retrieve全列查询指定列查询select+函数/表达式对查询出的列重命名-asdistinctorderbylimitwhere子句比较运算符逻辑运算符UpdateDeletedeletetruncatedelet

Linux: Cache 简介

文章目录1.前言2.背景3.Cache硬件基础3.1什么是Cache?3.2Cache工作原理3.3Cache层级架构3.4内存架构中各级访问速度概览3.5Cache分类3.6Cache的查找和组织方式3.6.1Cache组织相关术语3.6.2Cache查找3.6.2.1Cache查找过程概述3.6.2.2Cache查

cgroup限制内存

首先简单介绍下cgroup限制cpu的使用率,写一段代码如下:#include<stdio.h>#include<pthread.h>intmain(){inti=0;for(;;)i++;return0;}很明显,这里面是单核拉满,然后top看下进程的cpu使用率,如下所示:很明显,截图中的cpu使用率是正常的,现在

一,安卓aosp源码编译环境搭建

系列文章目录第一章安卓aosp源码编译环境搭建第二章手机硬件参数介绍和校验算法第三章修改安卓aosp代码更改硬件参数第四章编译定制rom并刷机实现硬改(一)第五章编译定制rom并刷机实现硬改(二)第六章不root不magisk不xposedlsposedfrida原生修改定位第七章安卓手机环境检测软件分享第八章硬改之设

mybatis学习记录(二)-----CRUD--增删改查

目录使用MyBatis完成CRUDz--增删改查3.1insert(Create)3.2delete(Delete)3.3update(Update)3.4select(Retrieve)查询一条数据查询多条数据使用MyBatis完成CRUDz--增删改查准备工作创建module(Maven的普通Java模块):myb

算法通关村-----动态规划高频问题

最少硬币数问题问题描述给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。详见leetcode322问题分析设f(n)为amount=n时使用的最少金币数。遍

【JavaSE笔记】数组

一、前言数组被广泛应用于各种应用场景中。在这篇文章中,我们将深入探讨Java数组的概念、定义、基本操作、多维数组以及常见的应用场景。二、数组的基本概念1、什么是数组数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车

【腾讯云 Cloud Studio 实战训练营】基于Python实现的快速抽奖系统

文章目录⭐️CloudStudio-简介🌟操作步骤🌟注册CloudStudio🌟创建工作空间🌟启动对应的开发环境⭐️抽奖系统项目介绍⭐️抽奖系统代码结构图⭐️项目基础类-文件检查🌟base.py基础类文件检查示例如下:🌟common模块的error.py脚本的代码如下:🌟utils.py模块check_f

CRM软件系统趣味性——游戏化销售管理

对于企业销售来说,高薪酬也伴随着更高的压力与挑战。高强度的单一工作会让销售人员逐渐失去对工作的兴趣,导致售状态缺少动力和激情,工作开展愈加困难。您可以通过CRM系统进行游戏化销售管理,让销售人员重新干劲满满。游戏并不是纯粹的娱乐,它其实还是提升个人竞争意识、团队协作的一种方式,因此,将它一味的妖魔化是不可取的。也正因如

Linux 中nc指令的使用总结

nc指令概述用法一:端口扫描用法二:命令行中发送和接收数据用法三:建立双方通信nc指令概述nc是Linux系统中的netcat命令之简称,它是一个强大的网络工具,可以用于创建TCP/UDP套接字连接。常见的其用法模板可定位:nc[选项][地址][端口],它的用法如下图所示:知道你英语差了一丢丢,小鸽鸽给你准备了中文版:

【C++】string类模拟实现下篇(附完整源码)

目录1.resize2.流插入<<和流提取>>重载2.1流插入<<重载2.2流提取<<3.常见关系运算符重载4.赋值重载4.1浅拷贝的默认赋值重载4.2深拷贝赋值重载实现4.3赋值重载现代写法5.写时拷贝(了解)6.源码6.1string.h6.2test.cpp1.resize下面我们来实现一下resize():re

热文推荐