【问题标题】:Using environment variable as a python argument fails in Makefile在 Makefile 中使用环境变量作为 python 参数失败
【发布时间】:2019-08-23 08:48:15
【问题描述】:

我有一个带有这个目标的 Makefile:

MY_DIR:=${CURDIR}/MY/DIR
my_proj: 
    cd $(MY_DIR); echo $(MY_ENV_VAR); python $(MY_ENV_VAR)/myscript.py --src $(MY_DIR) config

运行python脚本,即myscript.py,其位置存储在MY_ENV_VAR环境变量中。奇怪的是,echo 命令正确地打印了变量(即 c:/my/project/dir),但是 python 抱怨它找不到带有此错误的脚本文件:

python.exe: can't open file 'c:myprojectdir/myscript.py': [Errno 2] No such file or directory

现在,主要问题是为什么 make 工具在 echo 命令中正确解释了我的环境变量,但是在传递给 python 时路径被破坏了?

附言我正在使用 python 3.7.3,在 Windows 10 上制作 4.2.1。

更新1:我已经使用了其他一些问题和here中描述的$(value ...)功能,但问题仍然相同。

【问题讨论】:

  • echo $(MY_ENV_VAR) 的输出是什么?
  • @Sraw,哎呀,它是 C:\my\project\dir
  • 嗯,正如@Vorpal 所说,这似乎不是一条正确的路径。

标签: python python-3.x makefile environment-variables


【解决方案1】:

从给出的信息很难知道。我猜想也许您在该路径中有 c:\ 而不是 c:/ 并且 \ 最终成为无效的转义字符。尝试在路径中使用 \\,或用正斜杠替换它。

我无法自己测试这个,因为我在 Linux 上。

【讨论】:

    猜你喜欢
    • 2017-08-07
    • 2014-04-09
    • 2016-01-22
    • 2012-02-03
    • 1970-01-01
    • 2017-03-17
    • 2019-09-02
    • 2015-02-01
    • 2021-05-01
    相关资源
    最近更新 更多