python - XCode/Swift 和 Python 文件 - 想要在 XCode 项目中嵌入 Python.py 文件
问题描述
我想创建一个使用PythonKit调用一些嵌入式 Python.py 文件的 Swift 应用程序。
在文档和示例文件中,它说我应该使用
let sys = Python.import("sys")
sys.path.append("/Users/mlboy/PythonTest/") // path to your Python file's directory.
当我使用自己的路径执行此操作时,此路径是硬编码的并且有效。
但是,当它们位于同一项目目录中时,如何从项目中相对地访问这些文件,所以我不需要任何硬编码文件。
我以为这很容易,所以我确实尝试了......
sys.path.append("./myPythonFiles/")
sys.path.append("./pythonTest/myPythonFiles/")
还有更多。但没有一个工作。经过一番谷歌搜索后,我找不到解决方案。
建议?
谢谢你。
解决方案
我花了一周的时间来为我的类似需求想出一个解决方案。我正在制作一个命令行工具,但我想将(唯一的)Python 代码与它捆绑在一起。我还想在 Xcode 中进行调试,而不是在大多数情况下从与调试器断开连接的命令行部署和运行。因此,我的命令行工具初始化了一个主结构(BpK),该结构初始化了另一个执行 Python 调用的结构 PyRunner(首先声明为静态 var bpPy:PyRunner!= nil)。我的实验字符串仍然包括在内,因为这是 WIP。我希望它会演变成更优雅的东西。
public init() {
let bundlePyURL = Bundle.main.url(forResource: "Python/.../sample", withExtension: "py") ??
Bundle.module.url(forResource: "Python/.../sample", withExtension: "py")
BpK.bpPy = PyRunner(libDirPath: undlePyURL!.deletingLastPathComponent().path)
}
然后在亚军
`sys.path.append(libDirPath)
let example = Python.import(function)`
推荐阅读
- ios - 我怎样才能得到这种耀眼的颜色?
- ios - React 本机 iOS 字体无法以任何方式工作
- python - 按日期选择文件并包含文本,Python
- javascript - ElectronJS Vue Axios Basic Authentication Access-Control-Allow-Origin 错误
- c# - excelworkbook.saveas() 在 C# 中抛出错误
- com - 来自 COM exe 的 STDOUT 和 STDERR
- css - 为什么不定位:粘性;工作
- java - ElasticSearch Java API 从查询构建器中获取不同的值
- javascript - Material UI 表格分页问题 React
- r - R并行后端:当一个进程面临异常时会发生什么?