簡體   English   中英

python腳本來運行節點應用程序並輸出依賴項

[英]python script to run a node application and to output dependencies

我正在嘗試編寫一個Python腳本,該腳本將下載Node GitHub存儲庫。 一旦下載,它將使用build命令來構建應用程序,然后還輸出該節點項目的依賴項。

import json
import pymongo
import requests
import os
import subprocess
from git import Repo

from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017')
db = client['ibm_test']
collection_dep = db['dep']


headers = {'Authorization': 'token '}
r = requests.get('https://github.com/app.git', headers=headers)
#if(r.ok):
#    repoItem = package.json.loads(r.text or r.content)
#if  repoItem['language'] == 'JavaScript':

HTTPS_REMOTE_URL = 'https//git.url'
DEST_NAME = 'build/npm'
cloned_repo = Repo.clone_from(HTTPS_REMOTE_URL, DEST_NAME)
buildCommand = "build/npm/express-ibm/npm run-script devstart -b build/npm/express-ibm/package.json"
process = subprocess.Popen(buildCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
print(output)
print(error)
    # depo = subprocess.run(cmd)
     #depo = subprocess.check_output(['ls','-l'])
     #depo = os.system("gradle dependencies")
    # depo = os.system('path gradle *./graldew dependencies*')
    # collection_dep.insert(depo)
f= open("npm.json","w+")
#print(depo)
print("end")
client.close()

編輯:添加異常回溯。

最初的例外是:

Traceback (most recent call last):
File "node.py", line 34, in <module>
    process = subprocess.Popen(buildCommand.split(), stdout=subprocess.PIPE)
File "/usr/lib/python3.6/subprocess.py", line 709, in init
    restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'build/npm/express-ibm/npm'

路徑“ build / npm / express-ibm / npm”不存在。

您需要給出完整的路徑

exe_path = os.path.join('/the/path/to', 'build/npm/express-ibm/npm')

並在subprocess.Popen (或更好的subprocess.run )中使用它

暫無
暫無

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

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