我遵循官方教程安装ODBC驱动程序和安装pydobc导出标志和更新ODBC文件与驱动程序的位置。我可以打印pyodbc.drivers()
并找到它们
我有一个python venv,我pip安装pyodbc和成功,我可以
python3.9 -m venv .venv
source .venv/bin/activate
pip install pyodbc
> installed 4.0.32
python
import pyodbc
pyodbc.drivers() # locates and prints with a success
当我尝试托管默认代码azure函数时,它是成功的。但是当我在文件的顶部添加import pyodbc
时,它失败了。
预期行为:
- 函数应该运行并导入pyodbc 实际行为:
- 失败,在下面堆叠跟踪。
规格:
- Python: 3.9.13
- Core Tools Version 3.0.4585 Commit hash: N/A(64位)
- 功能运行版本:3.7.1.0
- Mac os M1 12.4
For detailed output, run func with --verbose flag.
[2022-07-09T15:45:22.308Z] Traceback (most recent call last):
[2022-07-09T15:45:22.314Z] File "/opt/homebrew/Cellar/azure-functions-core-tools@3/3.0.4585/workers/python/3.9/OSX/X64/azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py", line 127, in _get_valid_mem_map_dirs
[2022-07-09T15:45:22.315Z] os.makedirs(dir_path)
[2022-07-09T15:45:22.315Z] File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 215, in makedirs
[2022-07-09T15:45:22.315Z] makedirs(head, exist_ok=exist_ok)
[2022-07-09T15:45:22.315Z] File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 225, in makedirs
[2022-07-09T15:45:22.315Z] mkdir(name, mode)
[2022-07-09T15:45:22.315Z] PermissionError: [Errno 1] Operation not permitted: '/dev/shm'
[2022-07-09T15:45:22.629Z] Worker process started and initialized.
[2022-07-09T15:45:23.001Z] Worker failed to function id 716b2b93-8695-4822-ad71-cd76c3035b3c.
[2022-07-09T15:45:23.006Z] Result: Failure
[2022-07-09T15:45:23.006Z] Exception: ImportError: dlopen(/Users/bartoszlachowicz/Desktop/CodeProjects/customers-slack-app/.venv/lib/python3.9/site-packages/pyodbc.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_SQLAllocHandle'. Troubleshooting Guide: https://aka.ms/functions-modulenotfound
[2022-07-09T15:45:23.006Z] Stack: File "/opt/homebrew/Cellar/azure-functions-core-tools@3/3.0.4585/workers/python/3.9/OSX/X64/azure_functions_worker/dispatcher.py", line 305, in _handle__function_load_request
[2022-07-09T15:45:23.006Z] func = loader.load_function(
[2022-07-09T15:45:23.006Z] File "/opt/homebrew/Cellar/azure-functions-core-tools@3/3.0.4585/workers/python/3.9/OSX/X64/azure_functions_worker/utils/wrappers.py", line 42, in call
[2022-07-09T15:45:23.006Z] raise extend_exception_message(e, message)
[2022-07-09T15:45:23.006Z] File "/opt/homebrew/Cellar/azure-functions-core-tools@3/3.0.4585/workers/python/3.9/OSX/X64/azure_functions_worker/utils/wrappers.py", line 40, in call
[2022-07-09T15:45:23.006Z] return func(*args, **kwargs)
[2022-07-09T15:45:23.006Z] File "/opt/homebrew/Cellar/azure-functions-core-tools@3/3.0.4585/workers/python/3.9/OSX/X64/azure_functions_worker/loader.py", line 85, in load_function
[2022-07-09T15:45:23.006Z] mod = importlib.import_module(fullmodname)
[2022-07-09T15:45:23.006Z] File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
[2022-07-09T15:45:23.006Z] return _bootstrap._gcd_import(name[level:], package, level)
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap_external>", line 850, in exec_module
[2022-07-09T15:45:23.006Z] File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
[2022-07-09T15:45:23.006Z] File "/Users/bartoszlachowicz/Desktop/CodeProjects/customers-slack-app/__app__/overview/__init__.py", line 9, in <module>
[2022-07-09T15:45:23.006Z] import pyodbc
[2022-07-09T15:45:23.007Z] .
<标题>更新进口pyodbc失败当使用python3.7.4和运行python文件
import pyodbc
<ImportError: dlopen(/Users/bartoszlachowicz/Desktop/CodeProjects/new/.venv/lib/python3.7/site-packages/pyodbc.cpython-37m-darwin.so, 0x0002): symbol not found in flat namespace '_SQLAllocHandle'
标题>从我们的端复制后,我们也面临同样的问题,并注意到ODBC驱动程序丢失了。安装ODBC驱动程序可以使此工作。
引用:为SQL Server安装微软的ODBC驱动程序(macOS)