Мне нужно запутать свой код на Python, чтобы добиться этого, я использую расширение Cythonize, я могу этого добиться и получить скомпилированные двоичные файлы a.so из файлов a.py, но после выполнения bdist_wheel пакет .whl только пакетыфайлы a.so и игнорирует resource_folder.
Моя файловая структура проекта
|main_project
|__,setup.py
|__,main_folder
|____,a.py
|____,__init__.py
|____resource_folder
|__,a.model
|__,a.json
Я использовал следующие ссылки для создания запутанного пакета колеса python,
https://bucharjan.cz/blog/using-cython-to-protect-a-python-codebase.html
https://medium.com/@xpl/protecting-python-sources-using-cython-dcd940bb188e
Пакет только скомпилированные в двоичном формате .so файлы библиотеки Python, скомпилированные с Cython
Ниже приведен фрагмент из моего setup.py
packages = find_packages(exclude=('tests',))
def get_package_files_in_directory(directory):
paths = []
for (path, directories, filenames) in os.walk(directory):
for filename in filenames:
paths.append(os.path.join('..', path, filename))
return paths
setup(
packages=[],
ext_modules=cythonize(
[
Extension("main_folder.*", ["main_folder/*.py"])
],
build_dir="build",
compiler_directives=dict(
always_allow_keywords=True
)),
package_data={p: package_files + get_package_files_in_directory(os.path.join(here, p, 'resources')) for p in packages},
,....
,...
)
Для упаковки я использую следующую команду
python setup.py build_ext
python setup.py bdist_wheel
ожидаемый результат:Файл .whl, содержащий файл .so и папку ресурсов
Фактический результат: файл .whl содержит только файл .so.
, чтобы также упаковать папку resource_folder, которую я использовал функцией get_package_files_in_directory ()как предложенов этой ссылке "( Как добавить дополнительные файлы к колесу? )", но у меня это тоже не сработало