python - mac上的PyInstaller找不到libpython2.7

标签 python exe pyinstaller

我正在尝试使用 PyInstaller 2.0 制作 Python 脚本的二进制版本。我正在使用一个基本的“hello world”tkinter 脚本,但导入了一些项目需要的依赖项来测试 Pyinstaller。我在运行 Yosemite 10.10.5 的 Mac 上。 这是我的脚本:

#!/usr/bin/env python
from Tkinter import *
import Tix
import tkMessageBox
from sklearn import linear_model, decomposition, preprocessing
from sklearn.preprocessing import Imputer
from sklearn.cross_validation import cross_val_score, cross_val_predict
from sklearn.neighbors import KDTree 
import numpy as np
import collections
import array
import math
import csv
from collections import OrderedDict
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
import matplotlib.dates as dates
from matplotlib.mlab import PCA
from mpl_toolkits.mplot3d import Axes3D
from scipy.stats import mode
import heapq
import sqlite3
from sqlite3 import datetime


root = Tk()

w = Label(root, text="Hello, world!")
w.pack()

root.mainloop()

这运行完美。但是,当我使用

构建二进制文件时
$pyinstaller -w -F app.py 

然后我得到这个错误:

57665 ERROR: Can not find path ./libpython2.7.dylib (needed by //anaconda/bin/python)
Traceback (most recent call last):
  File "//anaconda/bin/pyinstaller", line 11, in <module>
    sys.exit(run())
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/__main__.py", line 90, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/__main__.py", line 46, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/build_main.py", line 788, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/build_main.py", line 734, in build
    exec(text, spec_namespace)
  File "<string>", line 16, in <module>
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/build_main.py", line 212, in __init__
    self.__postinit__()
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/datastruct.py", line 178, in __postinit__
    self.assemble()
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/build_main.py", line 543, in assemble
    self._check_python_library(self.binaries)
  File "//anaconda/lib/python2.7/site-packages/PyInstaller/building/build_main.py", line 626, in _check_python_library
    raise IOError(msg)
IOError: Python library not found: libpython2.7.dylib, Python, .Python
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.

* On Debian/Ubuntu, you would need to install Python development packages
  * apt-get install python3-dev
  * apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)

有人知道我该如何解决这个问题吗?当我使用没有额外依赖项的基本 hello world 示例时,也会发生此错误。我在//anaconda/lib 中有 libpython2.7.dylib 文件,我尝试使用

将它链接到 usr/lib/
$sudo ln -s /usr/local/lib/libpython2.7.dylib //anaconda/lib/libpython2.7.dylib

但是它并没有解决问题...

最佳答案

如果您像我一样通过 pyenv 使用 python,您可能需要重新安装并启用共享以访问 xcode 库,除非您之前已经这样做了。

sudo env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7

PS:我在 Darwin 上,但 enable-sharedenable-framework 还有效

事实上,下面的错误消息告诉我们该怎么做

enter image description here

关于python - mac上的PyInstaller找不到libpython2.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920076/

相关文章:

python - 运行 GDAL 时是否可以禁用 cmd 窗口?

c# - 如何创建单个 exe 文件来分发 C# 应用程序?

java - 在 Selenium WebDriver 中无法通过 java 代码运行 exe 文件

c - 在 Cygwin 中运行 C 程序不会产生任何结果

python - 卡住 (.exe) 一个 traitsUI 程序,现实可行吗?

python - 为授权编写 CherryPy 装饰器

python - 有关(精明)边缘检测的一般问题

python - Py 安装程序 "ValueError: too many values to unpack"

pyinstaller EXE OSError : could not find or load spatialindex_c-64. dll

python - 如何在 Twisted Python 框架(Kippo HoneyPot 相关)中启用 diffie-hellman-group-exchange-sha1 作为 key 交换类型?