ModuleNotFoundError:没有名为“ merlin.tradelogic”的模块

时间:2019-03-04 13:38:38

标签: python python-3.x python-2.7

我在执行脚本时遇到问题。我有许多继承的脚本,需要弄清楚如何运行。请查看以下背景和问题:

代码已从旧环境(整个过程运行良好)转移到新环境。这是问题开始的地方。请参阅以下文件树的简化版本。这是一个非常大的项目,所以我无法发布整个树,但是希望这是我需要帮助的部分。

未编译的代码树:

├── dao
│   ├── cythonlib
│   │   ├── cyrandom.c
│   │   ├── cyrandom.cpython-35m-darwin.so
│   │   ├── cyrandom.pxd
│   │   ├── cyrandom.pyx
│   │   ├── __init__.py
│   │   ├── _random.pxd
│   │   └── src
│   │       └── _random.c
├── merlin
│   ├── cmdopt.py
│   ├── __init__.py
│   ├── instrument.py
│   ├── mktdata.py
│   ├── overview.py
│   ├── pair.py
│   ├── portfolio.py
│   ├── src
│   │   ├── MerlinLogic.cpp
│   │   └── MerlinLogic.hpp
│   ├── stratconfig.py
│   ├── tradega.cpp
│   ├── tradega.cpython-35m-darwin.so
│   ├── tradega.pxd
│   ├── tradega.pyx
│   ├── tradelogic.cpp
│   ├── tradelogic.cpython-35m-darwin.so
│   ├── tradelogic.pxd
│   ├── tradelogic.pyx
│   ├── tradeopt.py
│   ├── utils.py
│   ├── var.py
│   └── wrtconfig.py
├── merlin_cprofile.sh
└── merlin.py

编译树:

strat
├── dao
│   ├── cythonlib
│   │   ├── cyrandom.cpython-35m-x86_64-linux-gnu.so
│   │   └── __init__.pyc
├── merlin
│   ├── cmdopt.pyc
│   ├── __init__.pyc
│   ├── tradega.cpython-35m-x86_64-linux-gnu.so
│   ├── tradelogic.cpython-35m-x86_64-linux-gnu.so
│   ├── tradeopt.pyc
│   ├── utils.pyc
│   ├── var.pyc
│   └── wrtconfig.pyc
├── merlin.pyc
└── merlin.sh

调用merlin.pyc脚本,然后执行merlin目录中的各种其他脚本。

整个过程的一部分,我得到了错误:

Traceback (most recent call last):
  File "strats/merlin.py", line 13, in <module>
  File "strats/merlin/tradeopt.py", line 11, in <module>
ModuleNotFoundError: No module named 'merlin.tradelogic'

新环境正在运行python版本

[user@localhost mktdata.out]$ python --version
Python 2.7.15

旧环境运行的是python版本:

Python 3.5.3

在新环境中,我正在运行gcc版本:

[user@localhost mktdata.out]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180712 (Red Hat 7.3.1-6) (GCC)  

在新环境中,我正在运行g ++版本:

[user@localhost mktdata.out]$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180712 (Red Hat 7.3.1-6) (GCC) 

请原谅我的无知,但是我需要使用Python 2.7.15 tradelogic.cpython-35m-darwin.sotradega.cpython-35m-darwin.so重新编译的问题,这样我使用python版本(2.7.15)的新环境才能读取它们吗?如果正确,我需要编译tradelogic.cpptradega.cpp以获得两个新的.so文件吗?

如果不是这种情况,我该怎么做才能解决问题?

0 个答案:

没有答案