日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python subprocess popen 无法打开_使用subprocess.Popen()在python脚本中设置PYTHONPATH失败...

發布時間:2023/12/4 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python subprocess popen 无法打开_使用subprocess.Popen()在python脚本中设置PYTHONPATH失败... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本問題已經有最佳答案,請猛點這里訪問。

如果自定義模塊不在sys.path變量的任何目錄中,下面的代碼允許我動態地標識和加載該模塊。

import sys

sys.path.append("/lib")

但是,這給了我一個錯誤

import subprocess

x = subprocess.Popen(["export","PYTHONPATH=/lib"], stdout=subprocess.PIPE)

不僅如此,甚至簡單的linux/unix變量聲明設置也會在subprocess.popen()中失敗。

import subprocess

x = subprocess.Popen("x=y", stdout=subprocess.PIPE)

我想檢查子進程,因為我試圖通過os.system()、os.popen()等設置pythonpath,但變量沒有設置(可能是在子進程shell中設置的)。

export是一個內置的shell命令,而不是程序。無論如何,在子進程中設置它不會影響當前的Python進程。你需要os.environdocs.python.org/3/library/os.html嗎?highlight=envir on os.envir‌&8203;打開。

os.environ["pythonpath"]="/dir"和subprocess.call(["export pythonpath=/dir"],shell=true)這兩個代碼都幫助我設置環境變量pythonpath,但即使設置了它,我也無法加載該目錄下存在的模塊,也看不到將此目錄項注入sys.path變量中。

subprocess.call(["export PYTHONPATH=/dir"], shell=True)只會影響一個子進程——環境變量不是全局的,它們不是共享的,它們是從父進程復制到子進程的。設置os.environ["PYTHONPATH"] ="/dir"將不會設置當前進程的sys.path,因為pythonpath是在進程啟動時讀取的,而不是稍后讀取的。

這里發生了一些事情,可能會讓你有點困惑。一件事是,給popen的任何指令都將在子進程中執行,不會影響主進程。您只能通過管道或從中檢索結果。

首先對第二個用例進行注釋,其中使用字符串作為參數。從文檔中可以看到:

class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None,

stdout=None, stderr=None, preexec_fn=None, close_fds=True,

shell=False, cwd=None, env=None, universal_newlines=False,

startupinfo=None, creationflags=0, restore_signals=True,

start_new_session=False, pass_fds=())

args should be a sequence of program arguments or else a single

string. By default, the program to execute is the first item in args

if args is a sequence. If args is a string, the interpretation is

platform-dependent and described below. See the shell and executable

arguments for additional differences from the default behavior. Unless

otherwise stated, it is recommended to pass args as a sequence.

On POSIX, if args is a string, the string is interpreted as the name

or path of the program to execute. However, this can only be done if

not passing arguments to the program.

因此,在第二種情況下,您試圖執行一個文件或程序x=y,但它不起作用。

即使您像在第一個用例中那樣使用list,您也必須知道,這并不等同于向bash shell傳遞代碼。如果需要,可以使用shell=true作為關鍵字參數,但這還有文檔指出的其他問題。但您的代碼將以shell=true執行。

如果您的唯一目的是設置環境變量,那么您應該考慮使用將環境變量映射到值的os.environ變量(如@cdarke所示)。

試試這個:

>>> subprocess.call(["export foo=bar && echo foo=$foo"], shell=True)

foo=bar

0

>>>

總結

以上是生活随笔為你收集整理的python subprocess popen 无法打开_使用subprocess.Popen()在python脚本中设置PYTHONPATH失败...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日操日日爽 | 青娱乐在线免费观看 | 欧美二三区 | 夜夜天天拍拍 | 一级黄色视 | 天堂视频在线免费观看 | www三级 | 双性懵懂美人被强制调教 | 成年人在线视频网站 | 中文字幕一区二区三区人妻四季 | 在线观看免费毛片 | 亚洲国产欧洲 | 国产成人免费片在线观看 | 精品二区在线观看 | 日韩色资源 | 国产传媒av在线 | 日本中文字幕在线观看视频 | 成人免费毛片观看 | 中文字幕va | 国产v亚洲v天堂无码 | 国产人妖视频 | 日美一级片 | 少妇人禽zoz0伦视频 | 熟妇高潮一区二区高潮 | 久久国产麻豆 | 日本毛片在线看 | 欧美日韩亚洲一区二区三区 | 国产精品福利一区二区三区 | 四虎网站在线观看 | 黑人玩弄人妻一区二区三区影院 | 国产亚洲欧洲 | 欧美超逼视频 | 美妇湿透娇羞紧窄迎合 | 成熟丰满熟妇高潮xxxxx视频 | 欧美一级淫片免费视频魅影视频 | 少妇激情偷人爽爽91嫩草 | 精品国产成人av在线免 | 成人蜜桃av | 日本精品免费一区二区三区 | 澳门免费av| 久国久产久精永久网页 | 日韩成人高清视频 | 久久不射网| 午夜va | 亚洲欧美日韩在线不卡 | av免费高清 | 日本免费网站在线观看 | 97在线观看免费视频 | 中文字幕在线免费看线人 | 国产精品久久久久蜜臀 | 日本综合色 | 成人动漫免费观看 | 免费观看黄色网页 | 性xx紧缚网站 | 亚洲毛片大全 | 亚洲4p | 狠狠干91| 久久影视 | 国产成人精品片 | 日韩一级大片 | 超鹏在线视频 | 日日夜夜国产精品 | 制服丝袜在线一区 | 麻豆精品在线视频 | 91成人在线观看高潮 | 欧美色淫 | 国产三级三级看三级 | 性感美女视频一二三 | 日本黄色片免费 | 秋霞国产| av尤物| 乱色欧美 | 亚洲精品 日韩无码 | 久久国产视频网 | 国产欧美久久久 | 激情午夜视频 | www..com色 | 欧美成人片在线观看 | 97超碰总站 | 成人αv | 欧美一区二区三区视频 | 国产剧情久久久 | 亚洲 精品 综合 精品 自拍 | 国产免费激情 | 中文字幕在线视频免费播放 | 青青操青青 | 一级免费黄色片 | 亚洲成人激情视频 | 综合激情伊人 | 无码精品视频一区二区三区 | av片免费看 | 亚洲一二三四 | 国产精品高潮呻吟 | 国精产品一区一区三区mba下载 | 亚洲高清中文字幕 | 天堂资源最新在线 | 亚洲一区二区三区免费视频 | 欧美成人精品一区二区男人看 | ass亚洲尤物裸体pics |