Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OS X上的pythonbrew下构建pgmagick?_Python_Macos_Pythonbrew - Fatal编程技术网

如何在OS X上的pythonbrew下构建pgmagick?

如何在OS X上的pythonbrew下构建pgmagick?,python,macos,pythonbrew,Python,Macos,Pythonbrew,当我试图用XCode 4.3.1在OSX Lion上构建pgmagick时,我并没有取得多大成功 我使用以下命令(通过自制)安装了ImageMagick和GraphicsMagick以及side boost: 然后我在以下位置克隆回购协议: 但是,我总是收到以下错误: ld: library not found for -lboost_python collect2: ld returned 1 exit status 根据stdout上的输出,安装程序正在寻找正确的boost位置(/usr/

当我试图用XCode 4.3.1在OSX Lion上构建
pgmagick
时,我并没有取得多大成功

我使用以下命令(通过自制)安装了ImageMagick和GraphicsMagick以及side boost:

然后我在以下位置克隆回购协议:

但是,我总是收到以下错误:

ld: library not found for -lboost_python
collect2: ld returned 1 exit status
根据stdout上的输出,安装程序正在寻找正确的boost位置(
/usr/local/lib

我也尝试过
easy\u install
pip
,但没有成功。我正在使用Pythonbrew,但也禁用了它,并尝试使用股票python安装——仍然没有成功


关于如何解决问题或进一步诊断问题,有什么建议吗?

在生成之前,环境帮助中设置
DYLD\u FALLBACK\u LIBRARY\u PATH=/usr/local/lib

e、 g


/usr/local/lib/中的boost_python lib是以libboost_python-mt.a和libboost_python-mt.dylib命名的,因为默认编译是启用了多线程支持的

Grep boost_lib=“boost_python”在setup.py中的ELSE条件下替换为w/boost_lib=“boost_python-mt”,将修复“未找到”问题

另外,也可以将“-mt”版本添加到libboost_python.a:如LinuxBoost所述,它从1.42开始不再附加“-mt”后缀

忽略这一行,或者您可以“使用boostpython=boost_python-mt python setup.py安装”。 您可能会在setup.py内的额外的编译参数中附加“--with boost python=boost_python-mt”,以实现相同的目标


此外,您可以通过托管环境中的pip安装pgmagick。参考资料

根据我自己在brew 0.9和OSX 10.6.8中对该问题的再现,问题是
——线程不安全
未被当前brew公式文件接受。您可以通过使用
brew edit boost
检查公式并查看该选项是否出现在公式内容中来验证这一点

因此,正在构建
libboost\u python-mt.a
libboost\u python-mt.dylib
而不是
libboost\u python.a
libboost\u python.dylib

修复此问题的最简单方法是编辑pgmagick setup.py,将
boost\u lib=“boost\u python”
替换为
boost\u lib=“boost\u python-mt”
(如前所述)或遵循以下步骤。否则这是一个已知的问题。

我必须使用构建pgmagick所需的mt和非mt(线程和线程不安全)二进制文件来构建Boost


事实证明,这是一个相当常见的问题,在该补丁被接受之前,您可以签出或使用我的Boost公式来构建pgmagick。

请注意,截至2014年7月,Boost Python库是一个单独的自制包,名为
Boost Python

5254f8f510fb30484f8fac8be3d38e388a4392e2
Author: Tim D. Smith <git@tim-smith.us>
Date:   Sat Jul 19 15:37:25 2014 -0700

    Split out Boost.Python
5254f8f510fb30484f8fac8be3d38e388a4392e2
作者:Tim D.Smith
日期:2014年7月19日星期六15:37:25-0700
分离Boost.Python

您需要单独安装它才能获得
libboost\u python
共享库。

Lion随python 2.7一起提供?请尝试brew edit boost s.t.。bootstrap.sh是用
--python version=2.6
@PauloScardine调用的。boost.rb中没有任何东西是用
--python version=2.6
调用的。请稍等:您是作为一个非特权用户执行此操作的。出于好奇,你的安装目标是不是被错误地扔进了
~/.pythonbrew
?@gomez先生,如果它是作为一个非特权用户完成的,这有什么关系吗?一切都是作为非特权用户完成的,包括安装boost/graphicsmagick(使用自制)。尝试通过
sudo
构建也失败。@是。据我所知,
brew
安装到本地用户副本(默认情况下在
~.pythonbrew
中),除非您另有说明。我这里的唯一目标是确保boost和pgmagick的副本安装在正确的目录中,因为您在调用中没有使用它们,并且对
/usr/local/lib
的写访问应该锁定到root。并且,如勘误表中所述:
--with thread unsafe
brew
中的当前boost公式文件忽略。预期的行为是生成
libboost\u python.a
,而不是
libboost\u python-mt.a
。好建议,尽管如此!。。。虽然,我在我的箱子上试过这个程序,但没有成功。@Gomez先生,有什么错误?我还没有在OSX 10.6.8上测试过它。在10.7 w/更新版brew上,生成了_pgmagick.so并运行良好。这似乎与10.6.8不向后兼容。第一次调用显然会打乱Bash(
-Bash:with boost python=boost\u python-mt:command not found
),第二次调用会打乱cc1plus,
extra\u compile\u args=[“--with boost python=boost\u python-mt”]
cc1plus:error:无法识别的命令行选项)-fwith boost python=boost\u python-mt
)。我想这只是一件事,因为10.7才是真正需要的。:@Gomez先生,这是有道理的。您是否尝试过第一种方法,将“boost_python”替换为“boost_python-mt”?而不是触摸我应用的补丁程序的
setup.py
文件(
import pgmagick
不会抛出错误,但尚未使用该错误)。@pluggd不应该这样做。这里的区别是,线程不安全的boost是通过brew安装的,这可能只会使那些依赖boost的多线程部分的程序失败(所有线程相关的op都将被替换,而没有op)。对于那些不需要多线程的程序,两个版本都可以。@MrGomez:是的,谢谢!虽然pgmagick的文档和使用都很糟糕(我似乎找不到一种写入流而不是文件的方法),但它确实可以工作。:)
brew instal boost python
在我的机器上解决了此错误。我正在运行Mac 10.9
ld: library not found for -lboost_python
collect2: ld returned 1 exit status
$ export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib
$ hg clone https://bitbucket.org/hhatto/pgmagick/src
$ cd pgmagick
$ python setup.py build
5254f8f510fb30484f8fac8be3d38e388a4392e2
Author: Tim D. Smith <git@tim-smith.us>
Date:   Sat Jul 19 15:37:25 2014 -0700

    Split out Boost.Python