Mac 下 Unicorn源码编译安装并绑定到 python3

遇到的坑比较多,记录一下备忘.

首先,官网推荐 mac 上直接

brew install unicorn

  

实际使用后发现,这样安装只在系统的 python2中可以使用. python2 2020年就要被弃用了 

然后尝试了

pip3 install unicorn

  


报错,找不到 libunicorn.dylib

又组合前两种方法各种实验,最后还是不行,于是选择自己编译安装. 也是各种报错踩坑

最终总结下成功安装的流程:

  1. clone unicorn 代码

    git clone https://github.com/unicorn-engine/unicorn.git
    

      

  2. 直接编译加安装

    ./make.sh
    sudo ./make install
    

      

    安装完成后查看下libunicorn.dylib所在目录,应该是在/usr/local/lib/中

  3. 进入到bindings/python/目录先设置 LIBUNICORN_PATH 再运行 setup.py

    sudo LIBUNICORN_PATH=/usr/local/lib/libunicorn.dylib python3 setup.py install
    

      

  4. 测试一下,随便到一个其他目录下,不要在/bindings/python/下, 比如到home,然后进入python中导入import unicorn看是否报错. 如果报下面这样的错误

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
      File "/xxx/python3.7/site-packages/unicorn-1.0.2rc1-py3.7.egg/unicorn/__init__.py", line 4, in <module>
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
      File "/xxx/python3.7/site-packages/unicorn-1.0.2rc1-py3.7.egg/unicorn/unicorn.py", line 82, in <module>
      File "/xxx/python3.7/site-packages/pkg_resources/__init__.py", line 1145, in resource_filename
        self, resource_name
      File "/xxx/python3.7/site-packages/pkg_resources/__init__.py", line 1715, in get_resource_filename
        return self._extract_resource(manager, zip_path)
      File "/xxx/python3.7/site-packages/pkg_resources/__init__.py", line 1736, in _extract_resource
        timestamp, size = self._get_date_and_size(self.zipinfo[zip_path])
    KeyError: 'unicorn/lib'
    

      

           去到这个/xxx/python3.7/site-packages/目录下,找到unicorn-1.0.2rc1-py3.7.egg然后用tar -xf unicorn-1.0.2rc1-py3.7.egg把它解压出来就行了. 诡异的问题

posted @ 2020-05-12 14:33  MokLiu  阅读(857)  评论(0编辑  收藏  举报