Я использую питон 3.6.
У меня есть структура каталогов ниже:
test_run.py
addition --> add.py
У меня есть файл test_run.py, который импортирует одну из функций с именем add_values()
из add.py
, присутствующих в каталоге или пакете Addition
.
Код для test_run.py
и add.py
приведен ниже:
test_run.py
:
from addition.add import add_values
print(add_values(5,4))
add.py
:
def add_values(a,b):
return (a+b)
Я скомпилировал все, используя cpython compileall, чтобы создать файл .pyc для каждого файла python. Потому что я хочу избавиться от всех файлов python и использовать только файлы байтового кода или скомпилированные файлы.
test_run.py
создал test_run.cpython-36.pyc
, а add.py
создал add.cpython-36.pyc
.
Затем я удалил настоящие файлы Python (test_run.py
и add.py
) и запустил скомпилированный файл test_run.cpython-36.pyc
, но он выдает ошибку:
ModuleNotFoundError: No module named 'addition.add'
Он отлично работает с исходными файлами (test_run.py), он дает сбой только тогда, когда я запускаю файл байт-кода (test_run.cpython-36.pyc) без исходных файлов (после удаления исходных файлов)
Пожалуйста, подскажите, как мне избавиться от исходных файлов Python и использовать только файлы с байтовым кодом? Я хочу добиться полной обфускации кода.
Addition
с заглавной буквыA
, но вы импортируете какaddition
со строчной буквойa
? Корректно ли работает программа при запуске из исходных файлов или в обоих случаях происходит сбой? - person Tadhg McDonald-Jensen   schedule 15.07.2020os.getcwd()
), и вам может потребоваться получить путь к папке с кодом и добавить его в PATH. - person furas   schedule 15.07.2020