当前位置: 首页 > 面试题库 >

我无法使用PythonKit在Xcode 11中导入Python模块

敖子安
2023-03-14
问题内容

我现在正在使用Swift Package Manager。

使用它,我将PythonKit导入了我的Swift项目。

我现在无法使用PythonKit导入Python模块。

它要求我设置PYTHON_LIBRARY路径,但我不知道该怎么做。

谁能帮我?

//
//  ViewController.swift
//  VideoStream
//
//  Created by HeRo Gold on 7/20/19.
//  Copyright © 2019 TopAce. All rights reserved.
//

import UIKit
import PythonKit

let sys = Python.import("sys")

class ViewController: UIViewController {

    @IBOutlet weak var netflixView: WKWebView!
    let netflixURL = URL(string: "https://www.netflix.com/login")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        let pymsl = try Python.import(name: "pymsl")

        print("Python \(sys.version_info.major).\(sys.version_info.minor)")
        print("Python Version: \(sys.version)")
        print("Python Encoding: \(sys.getdefaultencoding().upper())")
    }
}

当我在iPhone上运行iOS应用时,这是错误消息

致命错误:找不到Python库。设置PYTHON_LIBRARY环境变量以及Python库的路径。:文件/Users/herogold/Library/Developer/Xcode/DerivedData/VideoStream-
cjytedddvtktmybclqlztmfdbekk/SourcePackages/checkouts/PythonKit/PythonKit/PythonLibrary.swift,第40行,
2019-07- 20 23:55:00.967869 + 0800 VideoStream
[31841:170718]致命错误:找不到Python库。设置PYTHON_LIBRARY环境变量以及Python库的路径。:文件/Users/herogold/Library/Developer/Xcode/DerivedData/VideoStream-
cjytedddvtktmybclqlztmfdbekk/SourcePackages/checkouts/PythonKit/PythonKit/PythonLibrary.swift,第40行


问题答案:

第一个SO答案,所以请原谅格式/等。我经历了一段时间,遇到了不同的错误,但总体上是相同的问题。我希望这对您有帮助-需要考虑的一些资源:

1) Pyto-适用于iOS /
Catalyst的完全嵌入式Python环境;带有LXML和Python库移植说明
<-这是在iOS上运行后需要建模的东西,我的解决方案适用于Mac
Catalyst (预装了Python的Mac)

2)Python Kit教程
-这个人一步一步地介绍了如何实现PythonKit

这对我有用:

1)在签名和功能中禁用应用沙箱:

在“应用程序沙箱”的右上角的“签名和功能”下,有一个“
X”,单击以删除该应用程序沙箱

2) In “Hardened Runtime” under Signing and Capabilities: check “Disable
Library Validation”

Image of checkbox for Disable Library
Validation

Now, I haven’t yet submitted an app to the App Store under these provisions,
but at least my python files and libraries load / build / run!

UPDATE 05/15/2020:

For Mac Developer Distribution, you will have to sign all .so or .dylib’s
included with your app, along with the Python Interpreter and bin folder. I
made a quick bash script to run through each one when done with dev.

function signThese() {
        find . -name "*.$1" | while read line; do
                codesign --force --verbose=4 --options=runtime --timestamp --sign "Developer ID Application: [INSERT YOUR CERT HERE]" $line
        done
}

This will allow you to use AppSandbox in Signing and Capabilities, and all
Hardened Runtime Options (as in not disabling library validation).



 类似资料:
  • 当我尝试导入诸如“pymc3”或“theano”之类的模块时,rPython或pythoniner无法定位这些模块,即使我已经安装了它们。我使用的是Ubuntu 16.04、R3.4.2和python 3.5.2 这两个包似乎无法找到某个文件夹,但是在我将路径追加到sys.path后,它就不起作用了,sys.path包含了我需要的所有包,通过使用以下命令: 结果似乎也不错: ['''/usr/li

  • 问题内容: 我很困惑。我正在关注以下教程(特别是6.4.2) http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer 我正在运行Python 2.7,PyGTK 2.24和GStreamer WinBuilds 10.7(主要安装程序和SDK)。 当我尝试编译程序时,出现以下错误: 追溯(最近一次通话最后一次):导入gst文

  • 问题内容: 我正在尝试编写一些使用Numpy的代码。但是,我无法导入它: 我尝试了这个问题的建议: 然后搜索在该路径中命名的文件: 但是什么都没发生。 所以… 还有其他通常安装Python模块的地方吗? 如果事实证明中心区域中未安装numpy,该如何在我的帐户中本地安装numpy? 问题答案: 你安装了吗? 在debian / ubuntu上: 在Windows上: 在其他系统上:

  • 我正在使用Ubuntu14.04计算机,试图将google.protobuf模块导入到Python2.7中。 我已经试过了 和 没有成功。 在python内部,我得到一个错误,即: “导入错误:没有名为google.protobuf的模块” 编辑1: 对不起,谢谢大家的评论。我还是Ubuntu和StackOverflow的新手。 具体来说,我输入到命令行 并获得反馈 Traceback(最近的调用

  • 我无法导入内部 我一直在使用Linux Mint 19、Anaconda 3、pycharm 2019.3.1。 我创建了一个conda环境并安装了pygame: 然后我运行了。我得到了以下错误: 在互联网上读了一些博客后,我安装了, 之后如果我运行在我的conda环境的Linux终端上,我的代码成功运行。 但是如果我尝试在中运行相同的代码,我会得到以下错误: /home/tiago/anacon

  • 问题内容: 我正在尝试在Python 2.7.2中使用并遇到奇怪的错误。 考虑以下目录结构: 具有以下代码: (在真实代码中有一个名称。) 尝试到时,产生以下错误: 我想念什么? 谢谢! 问题答案: 对于相对进口,您必须: a)使用相对名称 b)明确提供锚点 当然,您也可以只执行绝对导入: