【问题标题】:Symbolic Link to Python3 doesn't work (on Windows)Python3 的符号链接不起作用(在 Windows 上)
【发布时间】:2018-09-07 11:42:55
【问题描述】:

我尝试从 Windows 上的符号链接运行 python3,但它不起作用!

我的计算机上安装了多个版本的 Python,例如Python 2.7 和 Python 3.6 和 3.6 64 位。它们安装在G:\Developer\Python\2.7等等。

我使用符号链接来运行特定的 python 版本。 G:\Developer\Python中是符号链接python2.exepython3.exepython36x64.exe等。

为了创建这些符号链接,我使用Link Shell Extension

在安装路径(例如 G:\Developer\Python\3.6\python.exe)中运行原始 python.exe 确实可以正常工作。针对 python2 的符号链接也按预期工作,但 python3 链接不起作用。在 Powershell 终端中,它们什么都不做(没有错误消息,没有输出)。在 Windows 命令行窗口中,尝试启动它们给我这个错误消息(下面的翻译):

代码无法执行,因为没有找到 python36.dll。重新安装可能会解决问题。

所以我不确定我应该如何并排安装多个 python 版本?

提前致谢! 米夏

【问题讨论】:

  • 也许可以试试docs.microsoft.com/en-us/previous-versions/windows/it-pro/…,而不是一些三方工具
  • 感谢您的评论!它给了我同样的错误。我不认为这个错误是由工具引起的 - 否则,到 python2 的符号链接也会失败。
  • 我建议使用 Python 3.x 中包含的pylauncher(另见docs)。如果您安装了其中的一个或多个(以及多个 Python 3.x 版本),它将与 Python 2.x 一起使用。您可以通过在脚本中添加 shebang 行或向它安装的py 命令行工具提供命令行参数来控制执行的版本。
  • 哦,在我从 PATH msdn.microsoft.com/en-us/library/windows/desktop/… 中删除 G:\Developer\Python\3.6 之后,我现在可以重现您的问题了

标签: python python-3.x


【解决方案1】:

情况比 Windows 上的更糟(或更好)。在传统的 Windows 安装中,Python 可执行文件使用注册表、环境或可执行文件的目录来定位其安装路径。这意味着 符号链接 将破坏该搜索..

但在 Windows 上处理多个安装的标准方法是 Python > 3.3 附带的 py.exe 启动器。如果您为所有用户安装或至少要求安装程序为所有用户安装启动器(推荐),它将在默认路径中可用(我的 3.6 版本安装在Windows 目录)。

现在无需更多配置,您可以使用 py -2.7 启动 Python 2.7,如果您不传递版本选项,则可以使用 py -3.6 启动 Python 3.6,

启动器将正确选择最合适的 Python 版本。它将更喜欢按用户安装而不是系统范围的安装,并按语言版本排序,而不是使用最近安装的版本

...

如果您想要安装最新版本的 Python 2.x,请尝试以下命令:

py -2

我目前没有并行的 32 位和 64 位版本,所以我无法对其进行测试,但可以通过 PY.INI 文件进行进一步配置

reference doc for Python launcher

【讨论】:

  • 谢谢!这正是我需要的!正如我刚刚在文档中看到的,您也可以在 64 位和 32 位之间切换。在 64 位 Windows 上,pylauncher 默认使用 64 位 Python。如果您传递版本选项 with 次要版本,则可以更改它,例如py -2.7-32 将启动 Python 2.7 32bit
猜你喜欢
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 2018-07-16
  • 2010-11-29
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
相关资源
最近更新 更多