【问题标题】:Jython no module named randomJython 没有名为 random 的模块
【发布时间】:2013-07-13 18:41:01
【问题描述】:

我正在使用 Java 制作的服务器。在某些时间点(例如,有人单击游戏中的对象),服务器将加载使用 Jython 制作的脚本。我无法让脚本正常工作,主要是因为一个随机导入模块。这是脚本:

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

当服务器加载并调用脚本时,我收到一个导入错误,指出没有名为“random”的模块。我调用的存在于 Jython/Python 中的模块无关紧要,除了 sys 和 java 类之外什么都不会。

然后我继续打开 PyDev 控制台并尝试查看是否能够导入随机数。成功了。

为什么 PyDev 控制台会在调用脚本时让我导入 random 或任何其他模块,而不是服务器?

【问题讨论】:

    标签: java python module pydev jython


    【解决方案1】:

    在 PyDev 中尝试输入:

    import sys
    print sys.path
    

    然后将相同的内容添加到您的脚本中 - 在出现问题之前并比较两者,如果它们在两种情况下都相同,请在您的本地计算机和您的服务器运行的计算机上随机搜索两者的元素。

    【讨论】:

    • 成功了!似乎 sys.path 位于 NGECore2\lib\Lib 甚至不存在。我只是继续往其中添加了 random.py ,现在一切正常。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    相关资源
    最近更新 更多