第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用于 pip freeze 的 subprocess.popen 不返回包列表

用于 pip freeze 的 subprocess.popen 不返回包列表

三國紛爭 2021-09-02 15:42:58
我的代碼似乎一直在工作,但現(xiàn)在我只是收到標(biāo)準(zhǔn)輸出說,You are using pip version 9.0.1, however version 18.1 is available.You should consider upgrading via the 'python -m pip install --upgrade pip' command.這是我的代碼import subprocessproc = subprocess.Popen(['pip', 'freeze'], stdout=subprocess.PIPE,                        stderr=subprocess.STDOUT)output, err = proc.communicate()string_file = StringIO.StringIO(output)print string_file.readlines()我的目標(biāo)是獲取幾個不同包的版本號,并在版本號與我之前在 json 文件中為包的版本記錄的版本號不同時執(zhí)行一些操作。pip list 的子進程似乎也沒有幫助。有誰知道可能導(dǎo)致這種行為的原因,或者是否有更簡單的方法來執(zhí)行此操作?我有大約 10 個包裹要檢查。
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經(jīng)驗 獲得超6個贊

顯而易見的事情是接受pip的建議并更新它。如果你不能這樣做,錯誤信息應(yīng)該是無害的——pip執(zhí)行的檢查通常不會阻止它工作。

您可以使用禁用版本檢查

proc = subprocess.Popen(['pip', 'freeze', '--disable-pip-version-check'],
                         stdout=subprocess.PIPE,
                         stderr=subprocess.STDOUT)


查看完整回答
反對 回復(fù) 2021-09-02
?
倚天杖

TA貢獻1828條經(jīng)驗 獲得超3個贊

我正在使用 pkg_resources 模塊來獲取這些信息:


import pkg_resources

from subprocess import call


# If you want to skip some packages

exception = ['scipy', 'numpy']


# List comprehension to get the packages

pack_names = [d for d in pkg_resources.working_set

    if d.project_name not in exception]


# print the package names and versions

for dist in pack_names:

    print('PACKAGE: {}'.format(dist))

    # And if you want to upgrade this package:

    call('pip install --upgrade --no-cache-dir ' + dist.project_name, shell=True)

希望這可以幫助。


查看完整回答
反對 回復(fù) 2021-09-02
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號