2013-10-31 12 views
5

Sto creando un'applicazione in python su mac osx 10.8.5 Ho convertito lo script python in un'app utilizzando py2app. Ma, all'interno dell'app, è presente il codice originale. Non voglio mostrare il mio codice ad altri distribuendo la mia app come problema di sicurezza. Ho rimosso il codice (.py) con il codice (.pyc), in quel caso l'app non funzionava correttamente. Si prega di suggerire un modo per it.I ricerca anche su altre domande, ma non ha ottenuto il risultato desiderato. Il mio setup.py èCodice Python presente nell'app fatta da py2app

from setuptools import setup 

APP=['myapp.py'] 
DATA_FILES= [('',['config.cfg'])] 
OPTIONS={'iconfile':'cc.icns','argv_emulation': True,'plist':{'CFBundleShortVersionString':'1.0'}} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'] 
    ) 

risposta

1

La soluzione più semplice è quella di spostare il codice in myapp.py ad un altro modulo e importare quel modulo in myapp.py.

Si noti che i moduli diversi dallo script principale sono solo byte-compilati (come file .pyc) e tali file possono essere facilmente trasformati in codice sorgente.

Byte-compilazione del file di script è sulla mia lista delle cose da fare, ma è più complicato che solo la sostituzione di un file .py da un file .pyc come si noticted :-)

+0

C'è un altro modo di farlo. Voglio più sicurezza. Durante l'importazione del modulo, è presente un errore in time.sleep (2) come "Errore attributo": l'oggetto "NoneType" non ha alcun attributo sleep – imp

+0

"Voglio più sicurezza." - Essere consapevoli che non esiste il codice "sicuro" Puoi nasconderla, compilarla, scriverla in qualsiasi lingua tu voglia, ma se qualcuno si preoccupa abbastanza di scoprire cosa c'è dentro, può sempre decompilarlo e non renderlo mai più offuscato. Anche un semplice comando 'stringhe 'gli permetterà di estrarre qualsiasi testo leggibile dall'uomo. Il massimo che puoi sperare è fare lo sforzo di indurre più problemi di quanti ne valga. – foo

+0

@foo ok Durante l'importazione del modulo, c'è un errore che mostra in time.sleep (2) come 'Errore attributo': ' NoneType 'object non ha attributi sleep, hai un'idea del motivo per cui viene visualizzato – imp

Problemi correlati