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

error attempting to install to linux mint 18.3 #155

Closed
dhdurgee opened this issue Jun 2, 2020 · 23 comments
Closed

error attempting to install to linux mint 18.3 #155

dhdurgee opened this issue Jun 2, 2020 · 23 comments

Comments

@dhdurgee
Copy link

dhdurgee commented Jun 2, 2020

unable to install to linux mint 18.3

python3 -m pip install --upgrade maestral[gui]

expected successful install, instead got following error:

Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.5/tokenize.py", line 454, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-trbqdsma/PyQt5/setup.py'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-trbqdsma/PyQt5/
You are using pip version 8.1.1, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
dhdurgee@Z560 ~ $

  • Maestral version: assumed current, install failed
  • OS: linux mint 18.3
  • Desktop environment: cinnamon
  • Qt version: unknown

I want t see if I can replace the dropbox client which does not want to work on my filesystem
maestral.log

@dhdurgee dhdurgee changed the title [BUG] error attempting to install to linux mint 18.3 Jun 2, 2020
@techman83
Copy link

I note this error File "/usr/lib/python3.5/tokenize.py", line 454, in open in your output. And one of the project requirements:

  • Python 3.6 or higher

Likely not going to work for you until you update python or to a newer version of linux mint (19.x comes with python 3.6)

@samschott
Copy link
Owner

This particular error during the installation seems to be caused by an old version of pip failing to install PyQt5.

But as @techman83 notes, Maestral will not work with Python 3.5 unfortunately. You can install a newer version of Python alongside the system Python. For example, miniconda provides a good standalone distribution.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 3, 2020

I added the deadsnakes PPA to synaptic and installed python3.6 here. I tried again and got:

maestral3-6.log

So is there a way to download the PyQt5 first and try again? Will maestral work with python3.6 as I have it?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 3, 2020

After a bit more reading of things I tried yet again:
maestral3-6a.log

Now it looks as if I am partially installed but getting new errors. Where do I go from here?

I can confirm that Maestral itself is installed, as I get the help screen. Trying to invoke the gui returns an error about "xcb" not being loaded.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

I did a search on the error I encountered attempting to run the gui and ran with QT_DEBUG_PLUGINS=1 and got:

maestral_gui.log

Checking the libraries yielded:

dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqeglfs.so | grep "not found"
libQt5EglFSDeviceIntegration.so.5 => not found
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqlinuxfb.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqminimal.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqminimalegl.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqoffscreen.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqvnc.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqwayland-egl.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqwayland-generic.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqwayland-xcomposite-egl.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqwayland-xcomposite-glx.so | grep "not found"
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqwebgl.so | grep "not found"dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $ ldd libqxcb.so | grep "not found"
libxcb-xinerama.so.0 => not found
libxcb-xinerama.so.0 => not found
dhdurgee@Z560 ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms $

So where do I get these missing dependencies?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Located and installed missing xinerama library, gui now working. Will attempt to use.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Attempt to link failed, log is:

maestral_gui_2.log

Where do I go from here?

PS: I tried "maestral link" and got a similar error. I will do so again and paste it if it will be helpful.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Going back to when I got it installed the log contains:

ERROR: maestral 1.0.3 requires rubicon-objc>=0.3.1, which is not installed.
ERROR: dropbox 10.2.0 has requirement requests>=2.16.2, but you'll have requests 2.9.1 which is incompatible.
ERROR: dropbox 10.2.0 has requirement six>=1.12.0, but you'll have six 1.10.0 which is incompatible.

I suspect this is the problem, but have no idea where the more current versions are available. Help.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

A web search revealed how to update requests and six, so pip3 list now shows:

requests 2.23.0
six 1.15.0

This however did not solve the problem. Given this, here is the log from the command line version:

maestral.log

At this point I believe I have everything installed correctly as documented, What did I miss?

@samschott
Copy link
Owner

Could you post a list of all installed packages with pip list? I suspect there may still be an incompatibility.

Also, pip should automatically fetch the required versions. How exactly did you install the packages?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Mint 18.3 had installed 2.7.12 and 3.5.2 installed from their repositories. As you required 3.6 I had to see about installing it. I finally was able to install 3.6.10 by adding the deadsnakes PPA and using synaptic to install it.

pip3list.txt

I followed your example of "pip3 install --update" to update requests and six to meet your requirements. I can only assume I need to update a few more for this to work. Thank you for your assistance.

@samschott
Copy link
Owner

samschott commented Jun 4, 2020

Those dependencies seem fine. Could you try explicitly uninstalling and reinstalling requests, as suggested on stackexchange?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

I just tried as suggested and see no change:

requests.log

What next?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

About the only other thing I can think of trying would be to uninstall python3.5 and see if that makes a difference. Is python3.6 completely backwards compatible with pythion3.5 code? I know that python3 and python2 are NOT compatible, so I have to ask.

@samschott
Copy link
Owner

Please don’t do that! I don’t have any experience with Mint but all sort of things could go wrong when removing the system Python. There often are subtle non-backwards compatible changes.

I suspect the continued error comes from some leftover file from the old requests installation. Googling the issue shows a whole lot of similar problems which do sometimes persist after updating requests. It’s difficult to debug for me without reproducing it.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Understood. I will await further instructions from you when you have something I can try for you. Given you suspect a leftover file, would it help to zip up the requests-2.23.0 related files in site-packages and upload them here? I would think you could install a local copy and hopefully recreate the problem.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

I just noticed something looking at the traceback in requests.log that I missed. Why is the version in /usr/lib/python3/dist-packages/requests/ being called? This is the OLD 2.9.1 version!

I suspect this is the problem, the question is why isn't the 2.23.0 that I installed being called?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

Possibly a stupid question, but the Wiki says a particular version of requests is needed and looking in the maestral-1.0.3.dist-info directory and inspecting the metadata files no such restriction is noted. Is this perhaps the problem, or just a documentation error?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 4, 2020

A web search turned up a reference to "usercustomize.py" in the python 3.6.3 documentation that could be added in my user site-packages directory. Could this be useful? I don't code python, so I can't guess or code even if it is useful.

@samschott
Copy link
Owner

Yes, using an old version of requests is almost certainly the issue. But I don't understand why it's used, either. Other packages are correctly loaded from ~/.local/lib/python3.6. Could you maybe try to explicitly shut down the daemon with maestral stop and then try linking again? It should then start a new instance. Also, you can try to manually import requests in a Python shell and see which version you get. Something in the environment seems to have gotten messed up.

the Wiki says a particular version of requests is needed

Does it? The minimum requirement is given by the dropbox package itself as requests >= 2.16.2. The requirements.txt only lists specific versions which I use for development and freezing.

@dhdurgee
Copy link
Author

dhdurgee commented Jun 5, 2020

Stopping the daemon improved the situation, but I hit another package that had to be upgraded. Once I upgraded cryptography I was able to link my account. So it appears that the daemon was running with the old package imported and kept it even when an update was available.

You are correct, the Wiki did not mention it. I guess I was remembering the notice I received when I installed your package.

Regarding your package, does it have any problems dealing with symlinks? I had used them to link to files in their original locations until Dropbox started having a fit about this and I had to put the original in the Dropbox folder and symlink back to my Documents, Downloads, etc.

Since your folder is named differently, can I simply uninstall the Dropbox client that isn't working right anyhow? Since it stared malfunctioning on 28 May I have stopped it and disabled autostart.

I notice that your client did not preserve the timestamps of the files it retrieved from my online folder. Is this an error? Did I miss a setting?

@dhdurgee
Copy link
Author

dhdurgee commented Jun 6, 2020

I don't know python, but given my experience perhaps you should consider reflecting the critical requirements of your entire dependencies tree in your top level maestral client package. That would have avoided the situation where I was able to start your daemon with packages that did not meet the requirements of the dropbox package.

You might also want to inform the maintainer of the SecretStorage package that they need to add a required level to their use of the cryptography package, as the 1.2.3 level that came with my distro had to be upgraded for this to work.

@samschott
Copy link
Owner

Regarding your package, does it have any problems dealing with symlinks?

Possibly. When you pause and resume syncing, symlinks will be followed and changes will sync. However, depending on the platform, you may not get “live” syncing because file systems events may not be registered. I’ll be interested in hearing about your experience.

Since your folder is named differently, can I simply uninstall the Dropbox client that isn't working right anyhow? Since it stared malfunctioning on 28 May I have stopped it and disabled autostart.

Yes, Maestral will work independently.

Regarding dependencies, it is typically the responsibility of every package maintainer to track its own dependencies and minimum requirements. I do give a reference set in requirements.txt which is known to work on macOS and should probably add the same for Linux. When I become aware of lacking minimum requirements in upstream packages, I do open an issue or submit a pull request. Therefore, thanks for the info about SecretStorage.

Since the install has been successful now, I’ll close this issue. If there are any other cases of missing dependencies, do let me know.

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

No branches or pull requests

3 participants