У меня есть скрипт Python3, который устанавливает pip3, и модуль digitalocean для создания капель.
Я разбил скрипт на 3 функции: Install (), Run () и Uninstall.В функции Install я могу установить pip3 и модуль digitalocean.
У меня есть несколько функций, которые я хочу вызвать в функции Run ().В начале Run () я импортирую модуль digitalocean.Когда я вызываю другую функцию, которая использует этот модуль, я получаю «NameError: имя« digitalocean »не определено».
Все, что я прочитал, говорит о том, что я могу импортировать в функцию, а затем использовать этот импорт в другой функции.Я не знаю, если Python3 отличается?Что-то мне не хватает? (Должно быть)
Вот соответствующий код, который вытащил большую часть.Дайте мне знать, если вам нужно больше.
#!/usr/bin/python3
import importlib.util
from subprocess import Popen, PIPE, STDOUT
import sys
import subprocess
import time
accessToken = 'ABC'
dropletName = 'newDropletAndTag'
tagName = dropletName
def Install():
pass
#This function installs the package and other things if they are not already present.
def CreateDroplet():
newDroplet = digitalocean.Droplet( token = accessToken,
name = dropletName,
region = 'NYC1',
image = 'ubuntu-16-04-x64',
size_slug = 's-1vcpu-1gb',
ssh_keys = sshKeysList,
backups = False
)
def Run():
import digitalocean
myManager = digitalocean.Manager(token=accessToken)
myDroplets = myManager.get_all_droplets(tag_name=tagName)
Install()
CreateDroplet()
def Main():
#START OF SCRIPT
print('\n\n\n')
print('---- Start Of Script ----')
Run()
print('---- End Of Script ----')
print('\n\n\n')
#END OF SCRIPT
if __name__ == '__main__':
Main()