Tôi có tập lệnh python đã được đóng gói dưới dạng tập lệnh dòng lệnh (dbtoyaml.py trong số Pyrseas kể từ khi bạn yêu cầu).nhập tập lệnh python từ tập lệnh khác và chạy tập lệnh với đối số
Tôi đang chạy một tập lệnh python khác mà từ đó tôi muốn gọi tập lệnh này. Có cách nào để nhập khẩu các mô-đun và giả tạo cư trú các đối số cần thiết từ kịch bản thứ hai của tôi để tránh thay đổi bất kỳ mã pyrseas ở tất cả?
from pyrseas import dbtoyaml -- My initial script, which also takes arguments dbtoyaml.main(['-m','-H MYHOSTNAME' .... other options])
Chưa làm việc cho tôi.
tôi nhận được một lỗi lạ:
usage: checkSchemaChanges.py [-h] [-H HOST] [-p PORT] [-U USERNAME] [-W]
[-c CONFIG] [-r REPOSITORY] [-o OUTPUT]
[--version] [-m] [-O] [-x] [-n SCHEMA]
[-N SCHEMA] [-t TABLE] [-T TABLE]
dbname
checkSchemaChanges.py: error: unrecognized arguments: MYHOSTNAME mydatabaseuser
Đó là một hỗn hợp của kịch bản của tôi mới (checkSchemaChanges.py, và myhostname và mydatabaseuser ở phía dưới) và các thông số từ dbtoyaml, mà tất cả đều đúng.
Nó có thể là tập hợp các tham số kép gây nhầm lẫn cho argparse không?
Điều đó, đã làm việc, nhưng tôi phải thay thế sys.argv, không thêm vào nó, tức là sys.argv = ... cảm ơn –