簡體   English   中英

運行影響父 shell 的 Python 腳本(更改環境變量、運行其他腳本等)

[英]Run Python script that affect parent shell (changes environment variables, runs other scripts, etc.)

最近我需要影響從 python script iteft 運行 python 腳本的 bash shell。 我開發了一個Python 實用程序包,它為pip添加了一些額外的功能。 此包中的工作流之一需要激活 Virtualenv 才能按計划工作。 這是問題所在。

當你運行類似的東西時:

os.system('/bin/bash ./venv/bin/activate')

或者:

subprocess.Popen(['/bin/bash', './venv/bin/activate')

執行腳本時,它不會對 shell 做任何事情。 基本上是因為這些命令是在隔離進程中執行的(我猜),因此不會影響 bash 進程本身。

問題:如何影響從腳本內部執行 python 腳本的父 shell(添加一些環境,運行其他腳本等)?

提前致謝。

如何影響從腳本內部執行 python 腳本的父 shell(添加一些環境,運行其他腳本等)?

這是不可能的,除非你的操作系統壞了。 進程隔離是操作系統的基本概念之一。

相反,研究venv的作用及其工作原理以及activate腳本的作用,然后將正確的目錄添加到 python 模塊搜索路徑。

暫無
暫無

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

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