我正在尝试使用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示例时,也会出现这个错误。我将libpython2.7.dylib文件放在//anaconda/lib中,并尝试使用以下命令将其链接到usr/lib/
$sudo ln -s /usr/local/lib/libpython2.7.dylib //anaconda/lib/libpython2.7.dylib
然而,它并没有解决这个问题。
https://stackoverflow.com/questions/38920076
复制相似问题