Python无法正常导入 [英] Python can't import shapely
问题描述
我在Mac OSX上使用的是Python3.4,并且正在尝试导入整形.但是,我无法这样做.这是我的回溯:
I am using Python3.4 on Mac OSX and I am trying to import shapely. I am however unable to do so. Here is my traceback:
from shapely.geometry import Point
File "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geometry/__init__.py", line 4, in <module>
from .base import CAP_STYLE, JOIN_STYLE
File "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geometry/base.py", line 9, in <module>
from shapely.coords import CoordinateSequence
File "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/coords.py", line 8, in <module>
from shapely.geos import lgeos
File "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geos.py", line 74, in <module>
_lgeos = load_dll('geos_c', fallbacks=alt_paths)
File "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geos.py", line 53, in load_dll
libname, fallbacks or []))
OSError: Could not find library geos_c or load any of its variants ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS', '/opt/local/lib/libgeos_c.dylib']
我认为我可能必须设置GEOS_LIBRARY_PATH,但不确定将其设置为什么.
I think I might have to set the GEOS_LIBRARY_PATH, but I'm not sure what to set it to.
在我执行brew install geos之后,这里是/Users/tc9/homebrew/Cellar/geos/3.4.2/lib
的ls:
Here is an ls of /Users/tc9/homebrew/Cellar/geos/3.4.2/lib
after I did brew install geos:
libgeos-3.4.2.dylib
libgeos.dylib
libgeos_c.a
libgeos.a
libgeos_c.1.dylib
libgeos_c.dylib
我编辑并提供了~/.profile
的资源,但这并不能解决问题:
I edited and sourced my ~/.profile
, but that didn't solve things:
GEOS_LIBRARY_PATH="/Users/tc9/homebrew/Cellar/geos/3.4.2"
export GEOS_LIBRARY_PATH
有人能指出我要导入的解决方案的方向吗?谢谢.
Can anybody point me in the direction of a solution for getting shapely to import? Thanks.
推荐答案
您已将homebrew设置为将内容安装在主目录中(当然,是主目录中的homebrew
子目录).可以,但是您必须告诉系统在此处找到已安装的库.通常会自动找到/opt/local/lib
,但不会自动找到.
You have set homebrew to install things in your home directory (well, the homebrew
subdirectory in your home directory). That's ok, but you'll have to tell your system to find the installed libraries there. /opt/local/lib
is commonly found automatically, but /Users/tc9/homebrew/lib
won't.
因此,代替设置GEOS_LIBRARY_PATH
,请尝试如下设置DYLD_LIBRARY_PATH
:
So instead of setting GEOS_LIBRARY_PATH
, try setting DYLD_LIBRARY_PATH
as follows:
export DYLD_LIBRARY_PATH=/Users/tc9/homebrew/lib
您可以先在命令行上执行此操作,如果可行,请将其放入您的个人资料中.
You can do this on the command line first, and if it works, put it in your profile.
请注意,我没有使用Cellar
子目录.您应该将其视为自制软件的存档,而不是实际使用的文件.为此,请使用/home/tc9/homebrew
(附加了lib
,bin
等).因此,例如,您的PATH
也不应包含Cellar
目录.
Note that I'm not using the Cellar
subdirectory; you should see that as an archive for homebrew, but not as the actual files in use. For that, use /home/tc9/homebrew
(with lib
, bin
etc appended). So for example, your PATH
should also not include the Cellar
directory.
这篇关于Python无法正常导入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!