我正在使用python 3.6.8运行oracle Linux 7.9。我按照this教程创建了一个独立的python zipapp可执行文件。当我运行结果可执行文件时,我得到以下错误(1 m只是脚本需要的参数)
oracle@hostname:~/scripts/inspirit/ora_runner2> python3 standalone_ora_runner_native.pyz 1m
Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "standalone_ora_runner_native.pyz/__main__.py", line 71, in <module>
File "standalone_ora_runner_native.pyz/oracledb/__init__.py", line 56, in <module>
File "standalone_ora_runner_native.pyz/oracledb/connection.py", line 45, in <module>
ImportError: cannot import name 'base_impl'
字符串
base_impl是一个模块,oracledb library尝试导入但失败。oracledb文件夹的内容如下所示
oracle@hostname:~/scripts/inspire/ora_runner2/standalone_testing/oracledb> ll
total 28588
-rw-r--r-- 1 oracle oinstall 19013 Nov 9 13:32 aq.py
-rwxr-xr-x 1 oracle oinstall 8927248 Nov 9 13:32 base_impl.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 oracle oinstall 49764 Nov 9 13:32 connection.py
-rw-r--r-- 1 oracle oinstall 32021 Nov 9 13:32 connect_params.py
-rw-r--r-- 1 oracle oinstall 4001 Nov 9 13:32 constants.py
-rw-r--r-- 1 oracle oinstall 2909 Nov 9 13:32 constructors.py
-rw-r--r-- 1 oracle oinstall 35714 Nov 9 13:32 cursor.py
-rw-r--r-- 1 oracle oinstall 11852 Nov 9 13:32 dbobject.py
-rw-r--r-- 1 oracle oinstall 1827 Nov 9 13:32 defaults.py
-rw-r--r-- 1 oracle oinstall 5403 Nov 9 13:32 driver_mode.py
-rw-r--r-- 1 oracle oinstall 3130 Nov 9 13:32 dsn.py
-rw-r--r-- 1 oracle oinstall 22861 Nov 9 13:32 errors.py
-rw-r--r-- 1 oracle oinstall 1811 Nov 9 13:32 exceptions.py
-rw-r--r-- 1 oracle oinstall 5679 Nov 9 13:32 fetch_info.py
-rw-r--r-- 1 oracle oinstall 1995 Nov 9 13:32 future.py
-rw-r--r-- 1 oracle oinstall 6172 Nov 9 13:32 __init__.py
-rw-r--r-- 1 oracle oinstall 6078 Nov 9 13:32 lob.py
-rw-r--r-- 1 oracle oinstall 31742 Nov 9 13:32 pool_params.py
-rw-r--r-- 1 oracle oinstall 35264 Nov 9 13:32 pool.py
drwxr-xr-x 2 oracle oinstall 4096 Nov 9 13:32 __pycache__
-rw-r--r-- 1 oracle oinstall 0 Nov 9 13:32 py.typed
-rw-r--r-- 1 oracle oinstall 28158 Nov 9 13:32 soda.py
-rw-r--r-- 1 oracle oinstall 11078 Nov 9 13:32 subscr.py
-rwxr-xr-x 1 oracle oinstall 5944536 Nov 9 13:32 thick_impl.cpython-36m-x86_64-linux-gnu.so
-rwxr-xr-x 1 oracle oinstall 14027328 Nov 9 13:32 thin_impl.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 oracle oinstall 3382 Nov 9 13:32 utils.py
-rw-r--r-- 1 oracle oinstall 6629 Nov 9 13:32 var.py
-rw-r--r-- 1 oracle oinstall 1533 Nov 9 13:32 version.py
型
如何准备zipapp
- python -m pip install -r requirements.txt --target ora_runner/
- python -m zipapp ora_runner/ -o standalone_ora_runner_native.pyz -p“python”
this帖子中的问题和我在类似条件下的问题是一样的,有人在评论中建议,这是关于系统由于缺少可再发行包等原因无法运行cpython的问题。如果有人能够详细说明这一点,我将不胜感激,因为我认为这可能是问题所在。
提前感谢!
1条答案
按热度按时间6ju8rftf1#
快速浏览一下zipapp,我看到它假设一个纯Python应用程序。oracledb包包含扩展模块(其中之一是base_impl),这些模块不能从zip文件中加载。您需要将oracledb从zipapp包中排除,并单独安装。