首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.6:在安装了_QuantLib和QuantLib之后,没有名为QuantLib的模块

Python3.6:在安装了_QuantLib和QuantLib之后,没有名为QuantLib的模块
EN

Stack Overflow用户
提问于 2017-08-07 05:21:58
回答 1查看 2.6K关注 0票数 2

我正试图在MacOSX10.12.5塞拉利昂和Python3.6.1上安装QuantLib和SWIG。但是收到错误消息:

代码语言:javascript
复制
ImportError: dlopen(build/lib.macosx-10.7-x86_64-
3.6/QuantLib/_QuantLib.cpython-36m-darwin.so, 2): Symbol not found: __ 
ZN8QuantLib10DateParser14parseFormattedERKSsS2_
Referenced from: build/lib.macosx-10.7-x86_64-
3.6/QuantLib/_QuantLib.cpython-36m-darwin.so
Expected in: flat namespace
in build/lib.macosx-10.7-x86_64-3.6/QuantLib/_QuantLib.cpython-36m-darwin.so

以及:

代码语言:javascript
复制
ModuleNotFoundError: No module named '_QuantLib'

Luigi在这个关于QuantLib用户邮寄名单的线程中给出了一个非常有用的建议,我实现了这个线程并取得了一些进展,但是我仍然无法完成Python3.6的安装。

我已经成功地为Python2构建了QuantLib。

我还尝试在下面构建带有动态加载的QuantLib (例如,在下面的步骤#5中,我使用rm‘’ed /usr/local/lib/libQuantLib*,然后在没有‘-禁用-共享-启用-静态’的情况下重新运行进程,但是也失败了.*(.)

有人有什么建议吗?提前谢谢你。

错误日志

代码语言:javascript
复制
~/QuantLib-SWIG-1.10/Python>  /Users/tf/anaconda/bin/python3.6 setup.py 
install 
running install
running build
running build_py
running build_ext
running install_lib
creating /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib
copying build/lib.macosx-10.7-x86_64-3.6/QuantLib/__init__.py -> /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib
copying build/lib.macosx-10.7-x86_64-3.6/QuantLib/_QuantLib.cpython-36m-darwin.so -> /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib
copying build/lib.macosx-10.7-x86_64-3.6/QuantLib/QuantLib.py -> /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib
byte-compiling /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib/__init__.py to __init__.cpython-36.pyc
byte-compiling /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib/QuantLib.py to QuantLib.cpython-36.pyc
running install_egg_info
Writing /Users/tf/anaconda/lib/python3.6/site-packages/QuantLib_Python-1.10-py3.6.egg-info
~/QuantLib-SWIG-1.10/Python> /Users/tf/anaconda/bin/python3.6 setup.py test
running test
running build
running build_py
running build_ext
Traceback (most recent call last):
  File "build/lib.macosx-10.7-x86_64-3.6/QuantLib/QuantLib.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "/Users/tf/anaconda/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 648, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 560, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
ImportError: dlopen(build/lib.macosx-10.7-x86_64-3.6/QuantLib/_QuantLib.cpython-36m-darwin.so, 2): Symbol not found: __ZN8QuantLib10DateParser14parseFormattedERKSsS2_
  Referenced from: build/lib.macosx-10.7-x86_64-3.6/QuantLib/_QuantLib.cpython-36m-darwin.so
  Expected in: flat namespace
 in build/lib.macosx-10.7-x86_64-3.6/QuantLib/_QuantLib.cpython-36m-darwin.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "setup.py", line 252, in <module>
    'build_ext': my_build_ext
  File "/Users/tf/anaconda/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Users/tf/anaconda/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/Users/tf/anaconda/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 58, in run
    module = __import__('QuantLibTestSuite', globals(), locals(), [''])
  File "test/QuantLibTestSuite.py", line 22, in <module>
    from date import DateTest
  File "test/date.py", line 18, in <module>
    import QuantLib
  File "build/lib.macosx-10.7-x86_64-3.6/QuantLib/__init__.py", line 21, in <module>
    from .QuantLib import *
  File "build/lib.macosx-10.7-x86_64-3.6/QuantLib/QuantLib.py", line 21, in <module>
    _QuantLib = swig_import_helper()
  File "build/lib.macosx-10.7-x86_64-3.6/QuantLib/QuantLib.py", line 20, in swig_import_helper
    return importlib.import_module('_QuantLib')
  File "/Users/tf/anaconda/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_QuantLib'

如何安装QuantLib

  1. 安装:
代码语言:javascript
复制
- Xcode 8.3.3
- Apple’s Command Line Developer Tools, by running on terminal: xcode-select --install
- brew
- boost, by running on terminal: brew install boost

  1. 从sourceforge下载tars:
代码语言:javascript
复制
- QuantLib 1.10
- QuantLib-SWIG 1.10

  1. 将上面的内容解压缩到主目录: /Users/tf/
  2. 在终端上运行: cd ~/QuantLib-1.10切换到QuantLib-1.10
  3. 在终端上运行:#./配置-具有-增强-包括=//usr/local/包括/-与-boost-lib=/usr/local/-前缀=/usr/local/ CXXFLAGS='-O2 -stdlib=libc++ -mmacosx-version-min=‘-stdlib=libc++-mmacosx-版本-min=10.9’-禁用-共享-启用-静态
  4. 在终端上运行: make && sudo make install
  5. 通过在终端上运行来测试C++安装: cd示例/百慕大installation && g++ -i/usr/g++/include/i/usr/local/include/ BermudanSwaption.cpp -o include应答-L/usr/local/lib/ -lQuantLib
  6. 在终端上运行: cd ~/QuantLib-swg-1.10在终端上运行:/配置CXXFLAGS='-O2 -stdlib=libc++ -mmacosx-version-min=10.9‘LDFLAGS='-stdlib=libc++ -mmacosx-版本-min=10.9’
  7. 在终端上运行C++ Python版本:CDPython&&/ setup.py /tf/anaconda/bin/python3.6 setup.py构建
  8. 通过在终端上运行: /Users/tf/ anaconda /bin/python3.6 setup.py安装到anaconda
  9. 在终端上运行检查: /Users/tf/anaconda/bin/python3.6 setup.py测试
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-10 00:24:29

在Luigi的帮助下,我成功地安装了QuantLib-SWIG

  1. 安装:
代码语言:javascript
复制
- Xcode 8.3.3
- Apple’s Command Line Developer Tools, by running on terminal: `xcode-select --install`
- brew
- boost, by running on terminal: `brew install boost`

  1. 从sourceforge下载tars:
代码语言:javascript
复制
- QuantLib 1.10
- QuantLib-SWIG 1.10

  1. 将上面的内容解压缩到主目录:/Users/tf/
  2. 通过在终端上运行:cd ~/QuantLib-1.10切换到QuantLib-1.10
  3. 在终端上运行:./configure --with-boost-include=/usr/local/include/ --with-boost-lib=/usr/local/lib/ --prefix=/usr/local/ CXXFLAGS='-O2 -stdlib=libc++ -mmacosx-version-min=10.9' LDFLAGS='-stdlib=libc++ -mmacosx-version-min=10.9' --disable-shared --enable-static
  4. 在终端上运行:make && sudo make install
  5. 通过在终端上运行来测试C++安装:cd Examples/BermudanSwaption && g++ -I/usr/local/include/ -I/usr/local/include/boost BermudanSwaption.cpp -o bermudanswaption -L/usr/local/lib/ -lQuantLib
  6. 通过在终端上运行切换到QuantLib-swg-1.10:cd ~/QuantLib-SWIG-1.10运行在终端上:./configure CXXFLAGS='-O2 -stdlib=libc++ -mmacosx-version-min=10.9' LDFLAGS='-stdlib=libc++ -mmacosx-version-min=10.9'
  7. 通过在终端上运行C++ Python版本:cd Python && export CXXFLAGS='-O2 -stdlib=libc++ -mmacosx-version-min=10.9' && export LDFLAGS='-stdlib=libc++ -mmacosx-version-min=10.9' && /Users/tf/anaconda/bin/python3.6 setup.py build
  8. 通过在终端上运行安装到anaconda:/Users/tf/anaconda/bin/python3.6 setup.py install
  9. 在终端上运行检查:/Users/tf/anaconda/bin/python3.6 setup.py test
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45539869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档