在 JSL 环境中安装和使用本地 Python 模块是否有最佳实践?
我阅读了使用 JSL 安装 Python 包的文档,这似乎是针对标准库的。JMP 查找自定义模块的默认位置是否有?
有没有办法使用 JSL 来管理自定义模块更新?
使用自定义模块、包或库有什么区别吗?
当您不使用 JMP 时,您如何管理它们?使用 JMP 时,您很可能可以使用类似的方法。
如果它与启动 .jsl 或 .py 脚本位于同一目录中,JMP 只会“找到它”。如果启动脚本是 .jsl,JMP 18.0 中会出现一个问题,即它找不到 .py 导入。
在 18.1+ 版本中,它应该可以在 .jsl 或 .py 脚本中正常工作
另一种方法是创建一个 pyproject.toml 文件,将脚本放入与文件同名的目录中,并放入适当的 pyproject.toml 文件中。这使其成为一个可安装包,然后 jpip 可以将其安装到 JMP site-packages/ 位置。请参阅 Python.org 的文档或有关创建可安装 Python 包的许多其他教程。例如: https
/til.simonwillison.net/python/pyproject
下面的代码既快又脏,可能没有遵循 Python 最佳实践。我认为通常有一个 __init__.py 文件和 __main__.py 或 main.py,而不是与包目录匹配的文件……但是 toml 文件允许您指定很多东西,包括依赖项,如下所示。
dt2pandas/
dt2pandas.py
pyproject.toml
pyproject.toml
[项目]
名称 =“dt2pandas”
description = “jmp.DataTable 到 pandas.DataFrame 示例”
作者 = [
{ 姓名 = “Paul R. Nelson”, 电子邮件 = “paul.nelson@jmp.com” }
]
版本=“0.1”
依赖项 = [“pandas”]
此时你可以
jmputils.jpip('安装','-e _my_path_to/ dt2pandas')