簡體   English   中英

如何在 Makefile 中為 Windows 設置環境變量?

[英]How do I set an environment variable in Makefile for Windows?

我有以下Makefile:

PYTHON = python
.DEFAULT_GOAL = help
help:
    @echo ------------------------------Makefile for Flask app------------------------------
    @echo USAGE:
    @echo   make dependencies           Install all project dependencies
    @echo       make docker             Run Docker
    @echo       make env                Set environment variables
    @echo       make run                Run Flask app
    @echo       make test               Run tests for app
    @echo ----------------------------------------------------------------------------------
dependencies:
    @pip install -r requirements.txt
    @pip install -r dev-requirements.txt
docker:
    docker compose up

env:
    @set CS_HOST_PORT=5000
    @set CS_HOST_IP=127.0.0.1
    @set DATABASE_URL=postgresql://lv-python-mc:575@127.0.0.1:5482/Realty_DB
    @set REDIS_IP=127.0.0.1
    @set REDIS_PORT=6379
run:
    ${PYTHON} app.py    test:
    @${PYTHON} -m pytest

set命令不起作用並且沒有設置環境變量,可能是什么問題?

您當然可以設置對make 將調用的程序有效的環境變量。 但是make不能為調用 make 的 shell設置環境變量。 因此,如果您的 makefile 運行一個程序,那么您可以在 makefile 中設置一個在該程序中可見的環境變量。

順便說一句,這與制造無關。 這是操作系統的限制(或功能,取決於您的觀點)。 試試這個實驗:

  • 打開一個終端。
  • 運行set FOO=bar
  • 運行echo %FOO% 看到它打印bar
  • 同一個終端通過運行cmd.exe
  • 現在在這里運行set FOO=nobar
  • 運行echo %FOO% 看到它打印nobar
  • 現在通過運行exit新的 shell
  • 現在運行echo %FOO%

你會看到它仍然打印bar而不是nobar 這是因為操作系統不允許子程序修改其父程序的環境。

所以,對此沒有什么可以做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM