Giter Site home page Giter Site logo

Comments (5)

adang1345 avatar adang1345 commented on August 22, 2024 1

Thanks, this is enough information for me to determine what the problem is. The issue is related to the fact that you have a folder and a module with the same name, nucleus. When you do import nucleus, Python must choose whether you mean the folder nucleus or the module nucleus.cp37-win_amd64.pyd. When the file __init__.py does not exist in the folder, Python chooses the module, which is what you expect. When __init__.py exists in the folder, Python chooses the folder, which is causing problems.

The solution would be for delvewheel to avoid adding the file __init__.py into a folder if it is next to a module with the same name. I'll get started on implementing this.

from delvewheel.

adang1345 avatar adang1345 commented on August 22, 2024

The purpose of adding __init__.py is so that the location of the dependent DLLs is added to the DLL search path. Normally, without this file, module imports may fail. I'll need more information to figure out why __init__.py is causing issues for you.

Did things work for you with an older version of delvewheel? If so, was __init__.py added with this older version and do you remember what the older version of delvewheel was?

Can I see the wheel where this issue is happening? You can provide a GitHub link if the wheel is stored on GitHub, or you can upload the file in a comment. Also, if an older version of delvewheel worked for you, can I see the functional wheel that was created by the older version?

from delvewheel.

ssaue avatar ssaue commented on August 22, 2024

Sorry for responding this late. I'm afraid I can't share our wheels publicly. I can only show the file structure inside the wheel:

Top level:
image

Inside the "nucleus" subfolder ("hardware" and "ml-models" contain config data used by the application):
image

We started using delvewheel in February 2021 and we probably used that initial version until my upgrade in October. We had no problems with the older version. It did not add the __init.py__ file. Hence the quick fix with the latest version is simply to remove that file from the "nucleus" subfolder.

I am not leaving you with much to work on, I'm afraid. But it would be great to avoid the manual removal from the wheels.

from delvewheel.

ssaue avatar ssaue commented on August 22, 2024

Thanks! That makes a lot of sense. I really look forward to a solution for this

from delvewheel.

ssaue avatar ssaue commented on August 22, 2024

Thanks a lot for doing this! Your fix did the trick

from delvewheel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.