Falldog / pyconcrete

Protect your python script, encrypt it as .pye and decrypt when import it
Apache License 2.0
692 stars 149 forks source link

threading issue again #71

Closed MyraBaba closed 2 years ago

MyraBaba commented 4 years ago

Hi,

I cloned repo and installed.

when I try to run :

pyconcrete alibaba.pye

it gives :

Exception ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'> Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 1283, in _shutdown assert tlock.locked() SystemError: <built-in method locked of _thread.lock object at 0x7f4cb09747d8> returned a result with an error set

udaybmi commented 4 years ago

Hi I installed with pip, while running the sample.pye, following error has come

Exception ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'> Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 1283, in _shutdown assert tlock.locked() SystemError: <built-in method locked of _thread.lock object at 0x7fdd5700fe18> returned a result with an error set

MyraBaba commented 4 years ago

is there any solution for this @Falldog

Falldog commented 4 years ago

No, please provide the testing environment for debugging Thanks

udaybmi commented 4 years ago

No, please provide the testing environment for debugging Thanks

I'm using pythhon 3.7 and installed using pip.

I'm trying ro run a program, contains pandas operations.

Falldog commented 4 years ago

can you provide the minimum problematic code for debugging

udaybmi commented 4 years ago

can you provide the minimum problematic code for debugging

import random
import pandas as pd

output = pd.DataFrame(columns=['grain','time'])

for _itr in range(5):
    output = output.append({'grain':random.choice(['year','month']),'time':random.choice(['2017','2018'])},ignore_index=True)

output.to_excel('Sample_google_response.xlsx')
print(' Data frame saved')
Falldog commented 4 years ago

Thanks, I will schedule it to fix the problem

MyraBaba commented 4 years ago

@Falldog

hi is there any improvement on above issue ?

thx

Falldog commented 4 years ago

@MyraBaba sorry, I'm really busy recently for my company. I have no time to fix it in short time. Maybe next month will be better.

MyraBaba commented 4 years ago

@Falldog

is there any hope to fix this threading issue . ?

Falldog commented 4 years ago

@MyraBaba I will spend some time to fix it

jigneshkerai89 commented 4 years ago

Just ported my code from 2.7->3.5 and got some issues first with installation - had to install python3-dev to eventually allow installation using setup.py from virtual environment. Now can import pyconcrete and checked its working with pip.

I am getting the same issue on python 3.5 using the threading library in a virtual environment

when trying to execute using

pyconcrete /code/app.pye

getting the following error

Exception ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'> Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 1287, in _shutdown assert tlock.locked() SystemError: <built-in method locked of _thread.lock object at 0xb62def50> returned a result with an error set

have been unable to use "Partial encrypted (pyconcrete as lib)" using the below folder structure main.py # import pyconcrete and your lib pyconcrete/* # put pyconcrete lib in project root, keep it as original files src/*.pye # your libs

whist trying to import app.pye by using import src.app as app which used to work in python 2.7, on python 3.5 it is unable to import from other files app.py needs to function (which are .pye in the /src folder)

desperately need this fix if possible @Falldog

Is there any other quick fixes or methods of executing i could use?

Falldog commented 4 years ago

There is no quick fixes, I had survey long time and there is not an easy fix for the issue. And can't find the root cause for it. I will spent more time to check it

jigneshkerai89 commented 4 years ago

There is no quick fixes, I had survey long time and there is not an easy fix for the issue. And can't find the root cause for it. I will spent more time to check it

Thanks @Falldog much appreciated.

Any idea why the "Partial encrypted (pyconcrete as lib)" method of deploying also doesn't work on python 3.5? I was testing this as it was working on python 2.7. Wanted to test if I can call pye files using a main.py file importing pyconcrete as a lib.

This time, it cant find submodules when importing them.

The modules (pye files) folder has all the pye files required and also a init.py which had allowed python 2.7 to import modules, but with python 3.5 its saying file does not exist. I have also manually added the src folder to the sys.path in main.py. Below is the folder structure.

folder |-> main.py - calling pyconcrete | ->pyconcrete |-> all pyconcrete files from /usr/lib and site-packages created | - > src | - > init.py | - > *.pye modules

Falldog commented 2 years ago

The issue should be fixed at https://github.com/Falldog/pyconcrete/commit/ef4220cb7d9fcf57e3c0ad31012ed68ca8627dec Please try the latest code