首页 > 解决方案 > 在 Windows 上将路径从 Bash 传递到 Python 会自动尝试将其转换为绝对路径 - 有没有办法禁止这样做?

问题描述

我正在尝试将 Python 脚本的路径作为参数传递给sys.argv[x]. 然而,从 Bash 到 Python 的所述路径的传递似乎将其转换为不同的路径。这是为什么?代码:

#!/bin/sh
path='/var/log'
echo "$path"
python script.py "$path"

#!/usr/bin/env python3
import sys
logPath = sys.argv[1]
print(logPath)

输出:

/var/log/
C:/Program Files/Git/var/log/

标签: pythonwindowsbashpath

解决方案


好的,我做了一些进一步的调查,发现这是mingw试图变得聪明的一个已知“特征”。为了修复它,我在export我的 bash 脚本中添加了以下内容:

export MSYS_NO_PATHCONV=1

您可以在 git 上阅读更多相关信息:

https://github.com/moby/moby/issues/24029


推荐阅读