请教导入python模块的问题

zpzlj178 2023-12-30 1126

经测试,发现只能import py文件,而且这个py文件里import其他模块必须在搜索路径中,不然返回空指针.

如何才能导入pyd格式的模块呢?  pycharm里可以直接用,而且优先用pyd格式文件


最新回复 (2)
  • 光庆 2024-1-1
    0 2

    在aardio里,需要加入库路径。可以看看aardio的范例。

    Code AardioLine:63复制
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
    • //导入模块
    • import console;
    • import py3;
    • var pyCode = /**
    • import urllib.request
    • def getHtml(url):
    • b = urllib.request.urlopen(url).read()
    • return b.decode("utf-8")
    • **/
    • //Python 模块请放在工程目录的 /py 目录下,
    • string.save("/py/myHttp.py",pyCode );//创建一个自定义模块文件
    • /*
    • 默认在以下两个目录搜索 Python 模块:
    • 这两个目录都会在生成 EXE 时复制到发布目录(即使 "\py" 目录没有添加到工程中)
    • "\py"
    • "~\lib\py3\.res\DLLs"
    • "\py" :
    • 文件路径开始为单个斜杠(或反斜杠)表示应用程序根目录,
    • 应用程序根目录在开发时指工程根目录(工程外单独启动代码则为文件所在目录),
    • 发布后应用程序根目录就是指 EXE 所在的目录。
    • "~\lib\py3\.res\DLLs" :
    • aardio 规定文件路径开始为波浪线表示 EXE 所在的目录(开发时为 aardio.exe 所在目录)。
    • 可以自己添加模块搜索路径,例如:
    • py3.appendPath("\py\site-packages\");
    • */
    • //试试在 Python 中 import 上面保存的测试模块(当然也可以在 Python 代码中 import)
    • var myHttp = py3.import("myHttp");
    • var str = myHttp.getHtml("http://www.aardio.com" );
    • import console;
    • console.log( str.toString() );
    • console.pause()
    • /*
    • aardio 与 Python 的 import 语句基本用法类似,
    • 都是用来导入模块,都要求文件名与模块路径与文件路径保持一致。
    • 但 aardio 的 import 语句更简单,
    • Python 的 import 语句则有很多复杂的功能,例如:
    • from 模块名 import 函数名
    • from 模块名 import *
    • from hashlib import md5 as md5New
    • 等等用法,并且可以任意添加修改搜索模块的路径。
    • aardio 需要在 import 过来的库中用 namespace 定义名字空间,而 Python 并不需要这么做,
    • Python 文件放到哪里模块名字就变成什么,所以经常会在 Python 代码中看到这句代码 if __name__ == "__main__":
    • 如果一个库被直接执行 __name__ 的值就是 "__main__",否则就是当前导入的模块名字或者当前类的名字。
    • 当然,复杂是有代价的,Python 的模块不但安装、部署比较麻烦,容易出现模块间的依赖与版本冲突,
    • 在生成软件时也不容易做到按需引用、按需发布,但在 aardio 中我们可以用类似 py3.lib.numpy 这样的扩展库解决这一麻烦。
    • */


  • zpzlj178 2024-1-1
    0 3

    搞清楚原因了,pyd是64位文件,aardio的是32位的,用了64位python可以用. 但是process.python示例太少,像py3那样不知道怎么实现,狠多方法都不一样

返回