|
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59
|
||||||
py и pyc файлы25.02.2021, 12:47. Показов 6035. Ответов 6
Метки нет (Все метки)
Доброго времени суток!!!
Работаю в одном приложении. В нем есть возможность, писать расширения функционала на Python-не Создаешь файл типа - 'имя_скрипта.py', подключаешь к программе, ну и чего надо реализовываешь. При отработке скрипта создавалась папка '__pycache__' в которой создавался файл 'имя_скрипта.cpython-37.pyc'. И потом, когда скрипт отработан, я убирал cpython-37 из имени файла c расширением pyc, и вместо исходника "подсовывал" этот файл и все прекрасно работало Теперь, с выходом новой версии приложения, файл с расширением *.pyc перестал создаваться. Полазив по инету, нашел вот такой способ:
Подскажите, где и чего надо поменять, что бы работало все как в прежних версиях? Или все это зависит от разработчика ПО и просто так файл pyc не подключишь?
0
|
||||||
| 25.02.2021, 12:47 | |
|
Ответы с готовыми решениями:
6
как декомпилировать в исходник файлы байткода .pyc. Компиляция в .pyc Компиляция в .pyc |
|
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59
|
||
| 09.03.2021, 12:17 [ТС] | ||
|
Полазив по инету узнал, что это можно сделать при помощи uncompyle6 На компе у меня стоит Pyton 3.6. При помощи pip3 установил uncompyle6. Конвертировал pyc, все прошло успешно. Но приложение при подключении py - выдает ошибку. Так понимаю, формат у 2.5 и 3.6 разный. Установил 2.5. По умолчанию pip-а в нем нет. Установил в ручную (через python install) - от куда скачал не помню При установки через pip выдает следующую ошибку: Кликните здесь для просмотра всего текста
C:\Python25\Scripts\pip-script.py run on 03/09/21 11:23:26 Requirement already satisfied (use --upgrade to upgrade): uncompyle6 in c:\python25\lib\site-packages\uncompyle6-3.7.4-py2.5.egg Downloading/unpacking spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Getting page https://pypi.python.org/simple/spark-parser Could not fetch URL https://pypi.python.org/simple/spark-parser: <urlopen error The connect operation timed out> Will skip URL https://pypi.python.org/simple/spark-parser when looking for download links for spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Getting page https://pypi.python.org/simple/ Could not fetch URL https://pypi.python.org/simple/: <urlopen error The connect operation timed out> Will skip URL https://pypi.python.org/simple/ when looking for download links for spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Cannot fetch index base URL https://pypi.python.org/simple/ URLs to search for versions for spark-parser>=1.8.9,<1.9.0 (from uncompyle6): * https://pypi.python.org/simple/spark-parser/ Getting page https://pypi.python.org/simple/spark-parser/ Could not fetch URL https://pypi.python.org/simple/spark-parser/: <urlopen error The connect operation timed out> Will skip URL https://pypi.python.org/simple/spark-parser/ when looking for download links for spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Could not find any downloads that satisfy the requirement spark-parser>=1.8.9,<1.9.0 (from uncompyle6) No distributions at all found for spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Exception information: Traceback (most recent call last): File "c:\python25\lib\site-packages\pip-1.2-py2.5.egg\pip\basecommand.py", line 106, in main status = self.run(options, args) File "C:\Python25\lib\site-packages\pip-1.2-py2.5.egg\pip\commands\install.py", line 256, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "c:\python25\lib\site-packages\pip-1.2-py2.5.egg\pip\req.py", line 1011, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "c:\python25\lib\site-packages\pip-1.2-py2.5.egg\pip\index.py", line 157, in find_requirement raise DistributionNotFound('No distributions at all found for %s' % req) DistributionNotFound: No distributions at all found for spark-parser>=1.8.9,<1.9.0 (from uncompyle6) Нашел uncompyle6 тут при установки через install выдает следующую ошибку(текст ошибки в приложенном файле error.rar) Помогите, в чем проблема?.
0
|
||
| 09.03.2021, 14:03 | |
|
Alllexx4, Файл .pyc содержит байт-код основного кода. Этот файл создается только при первом запуске файла .py , или перезаписывается после редактирования кода. Байт код это не компиляция в машинные коды, как например у С++ , а преобразование кода в более компактный код питона, что бы интерпретатор работал немного быстрее.
Вот все что есть на эту тему у Лутца (соответствует питону версии 3.3): Кликните здесь для просмотра всего текста
"
f.pyc f - имя файла без расширения pyc - расширение файла uncompyle6 (это самый новый - для всех версий Python). Но просто текст он не декомпилирует - только файлы типа .pyc\.pyo В Python 3.2 и последующих версиях файлы байт-кода .рус сохраняются в подкаталоге по имени__pycache__, расположенном в каталоге, где находятся файлы исходного кода, и их имена идентифицируют версию Python, в которой они создавались (скажем, script.cpython-ЗЗ.рус). Новый подкаталог__ pycache__ помогает избежать беспорядка, а новое соглашение об именовании файлов байт-кода предотвращает переписывание сохраненного байт-кода разными версиями Python, которые могут быть установлены на одном компьютере. Если интерпретатор Python на вашем компьютере обладает правом записи, он будет сохранять байт-код вашей программы в виде файла с расширением .pyc (.pyc – это компилированный исходный файл .py). Вы будете обнаруживать эти файлы после запуска программ по соседству с файлами, содержащими исходные тексты (то есть в том же каталоге). Интерпретатор сохраняет байт-код для ускорения запуска программ. В следующий раз, когда вы попробуете запустить свою программу, Python загрузит файл .pyc и минует этап компиляции – при условии, что исходный текст программы не изменялся с момента последней компиляции. Чтобы определить, необходимо ли выполнять перекомпиляцию, Python автоматически сравнит время последнего изменения файла с исходным текстом и файла с байт-кодом. Если исходный текст сохранялся на диск после компиляции, при следующем его запуске интерпретатор автоматически выполнит повторную компиляцию программы. Если интерпретатор окажется не в состоянии записать файл с байт-кодом на диск, программа от этого не пострадает, просто байт-код будет сгенерирован в памяти и исчезнет по завершении программы.*1 Однако поскольку файлы .pyc повышают скорость запуска программы, вам может потребоваться иметь возможность сохранять их, особенно для больших программ. Кроме того, файлы с байт-кодом – это еще один из способов распространения программ на языке Python. Интерпретатор запустит файл .pyc, даже если нет оригинальных файлов с исходными текстами. *1 - Строго говоря, байт-код сохраняется только для импортируемых файлов, но не для файла самой программы. Об импорте мы поговорим в главе 3 и снова вернемся к нему в части V. Байт-код также никогда не сохраняется для инструкций, введенных в интерактивном режиме, который описывается в главе 3. Байт-код не является двоичным машинным кодом (например, инструкциями для микропроцессора Intel). Байткод – это внутреннее представление программ на языке Python. По этой причине программный код на языке Python не может выполняться так же быстро, как программный код на языке C или C++, о чем уже говорилось в главе 1. Обход инструкций выполняет виртуальная машина, а не микропроцессор, и чтобы выполнить байт-код, необходима дополнительная интерпретация, инструкции которого требуют на выполнение больше времени, чем машинные инструкции микропроцессора. С другой стороны, в отличие от классических интерпретаторов, здесь присутствует дополнительный этап компиляции – интерпретатору не требуется всякий раз снова и снова анализировать инструкции исходного текста. В результате Python способен обеспечить скорость выполнения где-то между традиционными компилирующими и традиционными интерпретирующими языками программирования." От себя добавлю. У меня раньше создавалась папка __pycache__ и в ней файл .pyc . После установки питона 3.8 эта папка и этот файл перестали создаваться. Но у меня теперь создается папка .vs и еще вложенные папки (я думаю ее создает Microsoft Visual Studio Community 2019 может она же подавляет файл .pyc и подсовывает свой, не знаю) и в ней файл .suo Как написано выше, файл .pyc должен запускаться и нормально работать. Если не удастся восстановить исходник, то проанализируйте, что делает этот файл, и попытайтесь с нуля написать код файла .py самостоятельно. Если же у Вас не запускается файл .pyc , то это значит, что он поврежден.
0
|
|
|
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59
|
||
| 09.03.2021, 16:21 [ТС] | ||
|
Получается так: 1. Есть первые версии CAD системы, выпушенные лет 12 назад (когда в ходу был Python 2.5). В этих версиях есть питоновские файлы и они все имеют расширение pyc. Пару версий было так. 2. Потом выпустили версии, где появилась папка __pycache__ с pyc файлами. Но появились и файлы py. В этих файлах я мог кой чего добавлять своего, и все работало. 3. В Последней версии этой CAD системы пропали файлы pyc, и все строится на файлах py. Я так понимаю на вопрос ответил Viktorrus, так так последние версии работают с питоном 3.8 Со вторым и третьим пунктами все понятно Вернемся к первому. Если мне хочется добавить кой чего своего, мне нужен исходник с расширением py. Его нет. Копирование исходника из поздних версий и декомпиляция вызывает следующую ошибку: The DLL for the controller 'Python' has an old version. Please register a current version. От сюда я сделал вывод, что не подходит формат py файла. В первом случаи я скопировал этот файл с более поздней версии, которая поддерживает python 3.0. А декомпиляцию я делал uncompyle6, который установлен на версии python-а 3.6. На 2.5 мне uncompyle6 поставить не удалось. Направьте на истинный путь. Буду благодарен.
0
|
||
|
|
|||
| 09.03.2021, 17:12 | |||
|
В общем, вы сами видите, что использование .pyc-файлов - это bad, и разработчики системы это поняли и перешли на .py. Вы явно идёте против течения. А насчёт dll-ки уже интереснее, надо бы разобраться, что за она.
0
|
|||
| 09.03.2021, 17:12 | |
|
Помогаю со студенческими работами здесь
7
Редактирование файлов .pyc Редактирование файла .pyc Просмотреть функции в *pyc Не создаётся файл .pyc Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|