我在执行脚本时遇到问题。我有许多继承的脚本,需要弄清楚如何运行。请查看以下背景和问题:
代码已从旧环境(整个过程运行良好)转移到新环境。这是问题开始的地方。请参阅以下文件树的简化版本。这是一个非常大的项目,所以我无法发布整个树,但是希望这是我需要帮助的部分。
未编译的代码树:
├── 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.so
和tradega.cpython-35m-darwin.so
重新编译的问题,这样我使用python版本(2.7.15)的新环境才能读取它们吗?如果正确,我需要编译tradelogic.cpp
和tradega.cpp
以获得两个新的.so
文件吗?
如果不是这种情况,我该怎么做才能解决问题?