Python无法正常导入 [英] Python can't import shapely

查看:176
本文介绍了Python无法正常导入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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(附加了libbin等).因此,例如,您的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆