python - 无法连接到雪花
问题描述
我正在尝试从 python 连接到雪花。这非常简单直接,但不幸的是我无法成功。同一段代码可以在其他机器上运行(当我的朋友测试时)。不确定我缺少哪些依赖项。非常努力地尝试调试,甚至尝试使用 pipenv (假设 python 路径必须冲突)但没有运气。我恳请您帮助解决这个问题。总结以下步骤我做了什么。
sudo -H pip install pipenv #installed pipenv
mkdir -p test_vn #Created a directory
cd test_vn/
pipenv install requests #Installed requests module
因为它是虚拟的,所以我检查了安装包的路径。
/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages
-rw-r--r-- 1 james staff 126 Nov 1 09:24 easy_install.py
-rw-r--r-- 1 james staff 367 Nov 1 09:24 easy_install.pyc
drwxr-xr-x 11 james staff 374 Nov 1 09:24 setuptools-40.5.0.dist-info
drwxr-xr-x 69 james staff 2346 Nov 1 09:24 setuptools
drwxr-xr-x 8 james staff 272 Nov 1 09:24 pkg_resources
drwxr-xr-x 8 james staff 272 Nov 1 09:24 pip
drwxr-xr-x 9 james staff 306 Nov 1 09:24 wheel-0.32.2.dist-info
drwxr-xr-x 19 james staff 646 Nov 1 09:24 wheel
drwxr-xr-x 9 james staff 306 Nov 1 09:24 pip-18.1.dist-info
drwxr-xr-x 8 james staff 272 Nov 1 09:24 idna-2.7.dist-info
drwxr-xr-x 18 james staff 612 Nov 1 09:24 idna
drwxr-xr-x 8 james staff 272 Nov 1 09:24 urllib3-1.24.dist-info
drwxr-xr-x 25 james staff 850 Nov 1 09:24 urllib3
drwxr-xr-x 10 james staff 340 Nov 1 09:24 requests-2.20.0.dist-info
drwxr-xr-x 38 james staff 1292 Nov 1 09:24 requests
drwxr-xr-x 10 james staff 340 Nov 1 09:24 chardet-3.0.4.dist-info
drwxr-xr-x 81 james staff 2754 Nov 1 09:24 chardet
drwxr-xr-x 10 james staff 340 Nov 1 09:24 certifi-2018.10.15.dist-info
drwxr-xr-x 9 james staff 306 Nov 1 09:24 certifi
现在,安装pyOpenSSL
并snowflake-connector
如下所述
pipenv install pyOpenSSL #Installed pyOpenSSL
pipenv install snowflake-connector-python #Installed snowflake-connector
现在/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages
有以下
站点包1
test.py
在下创建了一个文件/Users/james/test_vn
import os
print os.__file__
import snowflake.connector
import logging
logging.basicConfig(
filename='snowflake_python_connector.log',
level=logging.DEBUG)
# Gets the version
ctx = snowflake.connector.connect(
user='user-name',
password='pass-word',
account='test_account'
)
cs = ctx.cursor()
try:
cs.execute("SELECT current_version()")
one_row = cs.fetchone()
print(one_row[0])
finally:
cs.close()
ctx.close()
当我执行脚本时, (test_vn) bash-3.2$ pipenv 运行 python test.py
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module pathlib2 was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/pathlib2/__init__.pyc, but /usr/local/lib/python2.7/site-packages/pathlib2-2.3.2-py2.7.egg is being added to sys.path
from pkg_resources import Requirement
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module attr was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/attr/__init__.pyc, but /usr/local/lib/python2.7/site-packages/attrs-18.2.0-py2.7.egg is being added to sys.path
from pkg_resources import Requirement
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module scandir was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/scandir.pyc, but /usr/local/lib/python2.7/site-packages/scandir-1.9.0-py2.7-macosx-10.12-x86_64.egg is being added to sys.path
from pkg_resources import Requirement
/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/os.py
Traceback (most recent call last):
File "test.py", line 13, in <module>
account='test_account'
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/__init__.py", line 32, in Connect
return SnowflakeConnection(**kwargs)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/connection.py", line 157, in __init__
self.connect(**kwargs)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/connection.py", line 397, in connect
self.__open_connection()
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/connection.py", line 595, in __open_connection
self.__authenticate(auth_instance)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/connection.py", line 818, in __authenticate
session_parameters=self._session_parameters,
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/auth.py", line 214, in authenticate
socket_timeout=self._rest._connection.login_timeout)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/network.py", line 538, in _post_request
_include_retry_params=_include_retry_params)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/network.py", line 627, in fetch
**kwargs)
File "/Users/james/.local/share/virtualenvs/test_vn-mReMX2sP/lib/python2.7/site-packages/snowflake/connector/network.py", line 704, in _request_exec_wrapper
raise e
ImportError: cannot import name dump_publickey
(test_vn) bash-3.2$
snowflake_python_connector.log
INFO:snowflake.connector.connection:Snowflake Connector for Python Version: 1.6.12, Python Version: 2.7.14, Platform: Darwin-16.7.0-x86_64-i386-64bit
DEBUG:snowflake.connector.connection:connect
DEBUG:snowflake.connector.connection:__config
DEBUG:snowflake.connector.converter:use_sfbinaryformat: False, use_numpy: False
DEBUG:snowflake.connector.connection:REST API object was created: test_account.snowflakecomputing.com:443, proxy=None:None, proxy_user=None
DEBUG:snowflake.connector.auth:authenticate
DEBUG:snowflake.connector.auth:assertion content: *********
DEBUG:snowflake.connector.auth:account=test_account, user=user-name, database=None, schema=None, warehouse=None, role=None, request_id=b085d6f3-42fc-40c1-b28a-5c78f36e1a88
DEBUG:snowflake.connector.auth:body['data']: {u'CLIENT_APP_VERSION': u'1.6.12', u'CLIENT_APP_ID': u'PythonConnector', u'CLIENT_ENVIRONMENT': {u'PYTHON_VERSION': u'2.7.14', u'APPLICATION': u'PythonConnector', u'OS_VERSION': 'Darwin-16.7.0-x86_64-i386-64bit', u'PYTHON_COMPILER': 'GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)', u'OS': 'Darwin', u'PYTHON_RUNTIME': 'CPython'}, u'SESSION_PARAMETERS': {u'CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY': 900}, u'LOGIN_NAME': 'user-name', u'SVN_REVISION': None, u'ACCOUNT_NAME': 'test_account'}
DEBUG:botocore.vendored.requests.packages.urllib3.util.retry:Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None)
DEBUG:botocore.vendored.requests.packages.urllib3.util.retry:Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None)
DEBUG:snowflake.connector.network:Active requests sessions: 1, idle: 0
DEBUG:snowflake.connector.network:remaining request timeout: 120, retry cnt: 1
DEBUG:snowflake.connector.network:socket timeout: 60
INFO:botocore.vendored.requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): test_account.snowflakecomputing.com
DEBUG:snowflake.connector.network:Active requests sessions: 0, idle: 1
不知道这里有什么问题。任何路径冲突或任何缺少包依赖项?请帮我。
/用户/詹姆斯/test_vn
pipenv 运行点冻结
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module pathlib2 was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/pathlib2/__init__.pyc, but /usr/local/lib/python2.7/site-packages/pathlib2-2.3.2-py2.7.egg is being added to sys.path
from pkg_resources import Requirement
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module attr was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/attr/__init__.pyc, but /usr/local/lib/python2.7/site-packages/attrs-18.2.0-py2.7.egg is being added to sys.path
from pkg_resources import Requirement
/Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/requirementslib/models/utils.py:19: UserWarning: Module scandir was already imported from /Users/james/Library/Python/2.7/lib/python/site-packages/pipenv/vendor/scandir.pyc, but /usr/local/lib/python2.7/site-packages/scandir-1.9.0-py2.7-macosx-10.12-x86_64.egg is being added to sys.path
from pkg_resources import Requirement
altgraph==0.10.2
asn1crypto==0.24.0
azure-common==1.1.16
azure-nspkg==2.0.0
azure-storage==0.36.0
bdist-mpkg==0.5.0
bonjour-py==0.3
boto3==1.9.35
botocore==1.12.35
certifi==2018.10.15
cffi==1.11.5
chardet==3.0.4
cryptography==2.3.1
docutils==0.14
enum34==1.1.6
future==0.17.1
futures==3.2.0
idna==2.7
ijson==2.3
ipaddress==1.0.22
jmespath==0.9.3
macholib==1.5.1
matplotlib==1.3.1
modulegraph==0.10.4
numpy==1.8.0rc1
py2app==0.7.3
pyasn1==0.4.4
pyasn1-modules==0.2.2
pycparser==2.19
pycryptodomex==3.7.0
PyJWT==1.6.4
pyOpenSSL==0.13.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
requests==2.20.0
s3transfer==0.1.13
scipy==0.13.0b1
six==1.4.1
snowflake-connector-python==1.6.12
urllib3==1.24
xattr==0.6.4
zope.interface==4.1.1
并且上面 ( pipenv run pip freeze
) 和 in 的版本site-packages
也不匹配。
解决方案
尝试将您的 PyOpenssl 更新到最新版本 - 18.0.0。有关版本要求,您可以参考此页面
推荐阅读
- java - 使用 Java Stream API 对 BigDecimal 进行分组和累加
- c++ - Boost Beast编译错误
- php - 如何在 PHP 的 SOAP API 中调用和设置标头和函数中的参数?
- regex - 如何从 html 文件中提取 URL 路径?(在 bash 中)
- java - anagramManager程序不同区域的空指针异常错误
- html - 响应性不适用于忘记密码链接
- angular - @NgModule 的意外令牌
- linux - Expo reload 在 Linux 上不起作用(使用 Android 设备)
- c - cs50 pset1 现金-贪婪挑战
- java - leftOuterJoin JavaPairRDD
和 JavaPairRDD >