-1

我最近发现了 Python getpass not working on Windows 的修复:Python not working in the command line of git bash

或者至少这是我记得的关于更改我的 python 配置的最后一件事。(这适用于 Windows 10 上的 Python 3.6.1)

现在,我还将 Python 用于其他任务,这些任务只需调用子进程即可在终端上键入多个命令:

go build ./folder/
mv ./src/ ./bin/

我得到错误:go: GOPATH entry is relative; must be absolute: "/c/Users/OP/work"。但是,如果我自己打字,我就不会明白go build ./src/folder。我C:\work在环境变量中设置了 GOPATH。我试过用;.

有没有办法每次都反转别名 python?或者将python的别名设置为winpty时到底发生了什么?

我在想,当我直接调用 go build 时,它是由我的用户配置文件或系统调用的。而当python的子进程调用它时,它调用的是相反的。因此,即使我在环境变量中只设置了 1 个,我也有两个 GOPATH 变量。

旁注:最近对 GOPATH 的另一个更改是更改它,C:/go因为它不能与 GOROOT 相同。由于某种原因,该错误随机弹出。它在该设置下工作了一段时间,除了在已经使用的许多其他导入包之上添加另一个导入包之外,我不记得之前进行了任何更改。

更新:type python我得到了结果:python is aliased to 'winpty python.exe'。因此,我尝试使用unalias python. 我得到的新结果是:python is hashed (/c/Users/OP/AppData/Local/Programs/Python/Python36/python).

这修复了go buildPython 子进程中的命令。但是,该别名是对使用 getpass 包的另一个 Python 问题的修复。

4

2 回答 2

0

除了我的unalias python修复之外,我还发现了一些有趣的事情:当我将 GOPATH 的环境变量从 更改为 时C:\work;C:\go所有的 go 命令仍然吐出错误go: GOPATH entry is relative; must be absolute: ""。我在更新 Windows 10 Fall Creators更新时遇到了同样的错误(但路径不同)。也许它是相关的。

只需关闭 MINGW 并重新打开它即可解决问题。所以也许它是在说我的环境变量的副本并将其用作参考而不是实际的系统属性。

我知道这不是一个受欢迎的问题,但是有人可以从我数小时的调查和调试中受益。

于 2017-12-15T18:01:25.953 回答
-1

在 Windows 下,您必须使用 Windows 风格的 GOPATH,例如d:\code,您可能应该使用 cmd shell 而不是其他任何东西。不幸的是,cygwin 路径(可能还有其他路径)不再起作用,尤其是对于 go get 接触 git。

坚持 Windows 路径和 Windows shell。

于 2017-11-23T08:26:07.543 回答