carderne / signal-export

Export your Signal chats to markdown files with attachments
Other
436 stars 46 forks source link

No-docker install on Mac errors on execution #109

Closed seanwhite closed 3 months ago

seanwhite commented 4 months ago

Desktop (please complete the following information):

Describe the bug After following the MacOS No Docker Install instructions, I try to execute "sigexport --list-chats" but get the error: Using Docker to extract data, this may take a while the first time! Error: using Docker method, but is Docker installed?

I then try running "sigexport --list-chats --no-use-docker" but get the error: You set 'no-use-docker' but pysqlcipher3 not installed properly

I check "pip show pysqlcipher3" and it shows it's installed properly: Name: pysqlcipher3 Version: 1.1.0 Summary: DB-API 2.0 interface for SQLCIPHER 3.x Home-page: https://github.com/rigglemania/pysqlcipher3 Author: David Riggleman Author-email: davidriggleman@gmail.com License: zlib/libpng Location: /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages

and "python3 --version" is Python 3.10.6, which looks like it was fine in the py code in the repository.

To reproduce Steps to reproduce the behavior. Please include the exact commands tried. Note: at each step I've made sure to open new terminal window and load new Bash env

  1. Homebrew already installed on this Mac
  2. brew install openssl sqlcipher - no errors reported in install
  3. pip install signal-export[sql] - no errors reported in install
  4. sigexport --list-chats - this produces the error described above

I had assumed that by installing with the [sql] suffix that it wouldn't even try to look for Docker in main.py. Perhaps the issue is in the exception thrown at line 533 of main.py but can't figure out why it's throwing the exception.

carderne commented 3 months ago

It falls back to the Docker method quite readily, because pysqlcipher3 is such a pain to get working for most people.

As you noticed, for some reason that line is catching it https://github.com/carderne/signal-export/blob/b04bc4632bc76ffc680e7bbfe3cdac78e72ff8b1/sigexport/main.py#L531-L535

I don't know why pysqlcipher3 isn't getting imported properly, but it's tricky and I recommend you just use the Docker method... If you figure out a solution/anything please feel free to re-open this.