我在 Google Cloud Compute Instances 上使用了启动脚本:
setsid python home/junaid_athar/pull.py
Run Code Online (Sandbox Code Playgroud)
当我登录到根目录时,我可以在 VM 上运行以下脚本而不会出现问题:
setsid python3 home/junaid_athar/btfx.py
Run Code Online (Sandbox Code Playgroud)
但是,当我将 setid python3 home/junaid_ahar/btfx.py 添加到启动脚本时,它会抛出一个错误:
ImportError: cannot import name 'opentype'
Run Code Online (Sandbox Code Playgroud)
当我登录时,相同的脚本运行良好,但当我将其作为启动脚本运行时则不能,为什么以及如何解决它?
更新:我对编程很陌生,而且很容易破解。这是脚本:
import logging
import time
import sys
import json
from btfxwss import BtfxWss
from google.cloud import bigquery
log = logging.getLogger(__name__)
fh = logging.FileHandler('/home/junaid_athar/test.log')
fh.setLevel(logging.CRITICAL)
sh = logging.StreamHandler(sys.stdout)
sh.setLevel(logging.CRITICAL)
log.addHandler(sh)
log.addHandler(fh)
logging.basicConfig(level=logging.DEBUG, handlers=[fh, sh])
def stream_data(dataset_id, table_id, json_data):
bigquery_client = bigquery.Client()
dataset_ref = bigquery_client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
data = json.loads(json_data)
# Get the table from …Run Code Online (Sandbox Code Playgroud)