Я работаю на сервере, который сделан на Java. В определенные моменты времени (например, кто-то нажимает на объект в игре, например), сервер загрузит скрипт, созданный с помощью Jython. У меня возникли проблемы с работой скрипта, главным образом потому, что один из них импортирует модуль случайным образом. Вот сценарий:Jython no module named random
from resources.common import RadialOptions
import sys
import random
def createRadial(core, owner, target, radials):
radials.add(RadialOptions(0, 21, 1, '')) #Use
radials.add(RadialOptions(0, RadialOptions.diceRoll, 3, '@dice/dice:dice_roll_single'))
return
def handleSelection(core, owner, target, option):
if option == RadialOptions.diceRoll or 21:
stringOptions = ['red', 'blue']
owner.sendSystemMessage('Your chance cube rolled the color ' + random.choice(stringOptions) , 0)
return
Когда сервер загружен и скрипт называется, я получаю сообщение об ошибке импорта говоря нет модуля с именем «случайным». Не имеет значения, какой модуль я называю существующим в Jython/Python, он не будет содержать ничего, кроме классов sys и java.
Затем я пошел вперед и открыл консоль PyDev и попытался выяснить, удалось ли мне импортировать случайные данные. Это было успешно.
Почему пульт PyDev позволяет мне импортировать случайный или любой другой модуль, но не сервер, когда он вызывает сценарий?
Это сделало трюк! Похоже, sys.path был в NGECore2 \ lib \ Lib, которого даже не было. Я просто пошел вперед и добавил random.py, и теперь все работает. Благодаря! – Waverunner