Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ImportError('secp256k1 library not found') #780

Closed
tschaboo opened this issue Jan 12, 2021 · 5 comments · Fixed by #781
Closed

ImportError('secp256k1 library not found') #780

tschaboo opened this issue Jan 12, 2021 · 5 comments · Fixed by #781

Comments

@tschaboo
Copy link

tschaboo commented Jan 12, 2021

I installed JoinMarket on a fresh Ubuntu 20.04LTS x64 installation according to docs/INSTALL.md

When running "wallet-tool.py generate" as instructed in docs/USAGE.md I get the abovementioned ImportError.

I tried a pip install secp256k1 which failed with a very long error message.

@AdamISZ
Copy link
Member

AdamISZ commented Jan 13, 2021

First step: did you not run ./install.sh as per the README, and if not, why not? (not criticizing, but it's important to understand people's process here).
Re: pip install secp256k1 yes, that is not what's needed here, it's not the package we're using.

@tschaboo
Copy link
Author

Hello,
thanks for the quick reply.

I read the README some weeks ago. Yesterday I just googled "install JoinMarket" which brought me directly to the INSTALL.md which I followed, believing that this is the preferred method. So, maybe include the ./install.sh-method in that document too?

I tried ./install.sh now - saying no to the Qt option - and it finished with errors
ModuleNotFoundError: No module named 'virtualenv.seed.via_app_data' Joinmarket virtualenv could not be setup. Exiting.

@AdamISZ
Copy link
Member

AdamISZ commented Jan 13, 2021

Hi, so thanks, I have just spent a short while looking more carefully at the INSTALL.md Linux instructions vs the install.sh script, and it's now pretty clear to me that there is a step missing in INSTALL.md (it should have been altered after #536 to account for the extra libsecp dependency; I only altered the install.sh script to account for this, but not those instructions).

So in short yes you would be much better running install.sh as it handles all the needed steps.

The second, separate error you mention:

ModuleNotFoundError: No module named 'virtualenv.seed.via_app_data'

I have never heard of anything like this. A quick google reveals this: https://stackoverflow.com/questions/63491221/modulenotfounderror-no-module-named-virtualenv-seed-embed-via-app-data-when-i

@PulpCattel
Copy link
Member

I think this was what I was referring to here and part of the problem for @pettycake in #763.

Btw, what about adding also how to validate the signature? There is no mention of this in INSTALL.md for Linux nor Mac; I can imagine in a scenario like this, where the user lands directly into that page, how this could not be obvious at all.

Maybe, since ./install.sh is the preferred way, a note/warning/mention could be add at the top of INSTALL.md saying that the README installation method is recommended.

@AdamISZ
Copy link
Member

AdamISZ commented Jan 13, 2021

@PulpCattel yep absolutely, and as you said in this comment specifically, the problem is a missing libsecp install step (as i mentioned above, this is a missing addition from #536). I think I'll add that step into the INSTALL.md step in a PR today. And also the small warning sentence as per your suggestion.
Meanwhile, both in that Issue #763 and now in this one, we are ending up discussion multiple different problems :) I don't know what's going on with this virtualenv thing, that's clearly an entirely separate problem.

AdamISZ added a commit that referenced this issue Jan 13, 2021
Fixes #780. Prior to this commit, a user choosing to
follow manual install for Linux via INSTALL.md would be
left with a non-working install of Joinmarket due to the
absence of the specific libsecp256k1 library installation
needed to run python-bitcointx. This commit adds those
manual instructions and also warns users that the install.sh
handles this (and other tricky details of installation) better.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants