ich versucht habe, eine EXE für das folgende Skript mit py2exe zu generieren:Py2exe Fehler: Namespace-Pakete noch nicht unterstützt: Skipping-Paket ‚Schneeflocke‘
import snowflake.connector
import os
import sys
# Setting your account information
ACCOUNT = '########'
USER = '#######'
PASSWORD = '#######'
ROLES=[]
DATABASE=[]
ROLES.append(sys.argv[1])
DATABASE.append(sys.argv[2])
print(ROLES)
print(DATABASE)
cnx = snowflake.connector.connect(
user=USER,
password=PASSWORD,
account=ACCOUNT,
)
cur = cnx.cursor()
list_of_grants=[]
for rl in ROLES:
print("Role: "+rl)
db_res=cur.execute("SHOW DATABASES").fetchall()
for db in DATABASE:
print("Database: "+ db)
use_db_query = "USE DATABASE " + db
print(use_db_query)
cur.execute(use_db_query)
schema_res= cur.execute("SHOW SCHEMAS").fetchall()
for sch in schema_res:
print("schema: "+ sch[1])
list_of_grants.append("GRANT ALL ON SCHEMA "+db+"."+sch[1]+" to role "+rl+" with grant option")
use_db_query = "USE SCHEMA " + sch[1]
cur.execute(use_db_query)
tables_res=cur.execute("SHOW TABLES IN "+sch[1]).fetchall()
for tbl in tables_res:
print("table: "+ tbl[1])
list_of_grants.append("GRANT ALL ON TABLE "+db+"."+sch[1]+"."+tbl[1]+" to role "+rl+" with grant option")
for grant in list_of_grants:
cur.execute(grant)
Der Code ist ziemlich einfach und funktioniert wie ein Charme .
Ich wünschte, es in eine .exe drehen mit py2exe verwenden, aber in diesem Moment bekam ich folgende Fehlermeldung:
running py2exe
Error: Namespace packages not yet supported: Skipping package 'snowflake'
Traceback (most recent call last):
File "setup.py", line 13, in <module>
'packages': ['snowflake']
File "C:\Anaconda3\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Anaconda3\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Anaconda3\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Anaconda3\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run
self._run()
File "C:\Anaconda3\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run
builder.analyze()
File "C:\Anaconda3\lib\site-packages\py2exe\runtime.py", line 168, in analyze
mf.import_package(modname)
File "C:\Anaconda3\lib\site-packages\py2exe\mf3.py", line 92, in import_package
self.import_hook(name)
File "C:\Anaconda3\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
module = self._gcd_import(name)
File "C:\Anaconda3\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
return self._find_and_load(name)
File "C:\Anaconda3\lib\site-packages\py2exe\mf3.py", line 337, in _find_and_load
raise ImportError(name)
ImportError: snowflake
Snowflake ist ein Paket, das mir erlauben, meine DB (eine Schneeflocke-Datenbank zu verbinden, ziemlich neu)
Mein o ist: Windows 10, Python Version 3.5.1
Mein setup.py für py2exe:
from distutils.core import setup
import snowflake.connector
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
console=['grants.py'],
options = {
'py2exe': {
'packages': ['snowflake']
}
}
)
Ich schaute mich um und konnte keine Antwort auf dieses Problem finden. Wenn jemand eine Idee hat.
Vielen Dank im Voraus für Ihre Hilfe.
Hallo @Oliver, Danke für deine Antwort, ich habe versucht pyinstaller und ich habe ein paar Probleme damit. Ich werde mehr darüber schauen und sehen, was das Problem ist, wenn das funktioniert Ich werde dieses Thema als geschlossen markieren. – leCLEMS