У меня есть следующий код в скрипте Python 1.py, который при запуске выполняет ruby-скрипт read_config.rb.
from Naked.toolshed.shell import execute_rb, muterun_rb
success = execute_rb('read_config.rb')
Теперь вот Ruby-файл read_config.rb
from my-vpc-netapp-only import Variables # Python line of code to be executed
require 'erb'
require 'yaml'
region= 'ap-south-1'
k8sver='1.18'
vpccidr= '192.168.0.0/16'
vpcid = Variables.VPC_ID
pubsubnet1a = Variables.PUBSUBNET1A
pubsubnet1b = Variables.PUBSUBNET1B
prisubnet1a = Variables.PRISUBNET1A
prisubnet1b = Variables.PRISUBNET1B
template = ERB.new File.read 'managedcluster.yaml.erb'
File.open('managedcluster.yaml', 'w') do |f|
f.write template.result(binding)
end
В этом файле Ruby я импортирую переменные класса из другого скрипта Python. Какие изменения можно внести, чтобы скрипты выполнялись без ошибок?
🤔 А знаете ли вы, что...
Python поддерживает параллельное и асинхронное программирование с помощью модулей asyncio и multiprocessing.
В этом файле ruby я импортирую переменные класса из другого скрипта Python. Какие изменения можно внести, чтобы скрипты выполнялись без ошибок?
Строка не является синтаксически допустимой для Ruby, поэтому первое, что вам нужно сделать, это изменить ее так, чтобы она стала допустимой для Ruby. Может быть, что-то вроде этого:
import(:Variables, from: :'my-vpc-netapp-only')
Шаг № 2 — написать интерпретатор Python на Ruby, который предоставляет метод import
, который может импортировать модули Python как объекты Ruby.
Насколько я понимаю, my-vpc-netapp-only
— работающее приложение, поэтому вам нужно автоматизировать выборку значений переменных с помощью эквивалента импорта. В противном случае вы можете вручную выбрать некоторые переменные из my-vpc-netapp-only.py
. в этом предположении, это вопрос написания
PUBSUBNET1A
PUBSUBNET1B
PRISUBNET1A
PRISUBNET1B
в файл всякий раз, когда он изменяется во время работы my-vpc-netapp-only.py
, и вы читаете его в скрипте ruby, чтобы создать файл yaml.