robotframework / RIDE

Test data editor for Robot Framework
Apache License 2.0
966 stars 382 forks source link

Dependencies are not installed along with RIDE #1793

Closed Hi-Fi closed 5 years ago

Hi-Fi commented 5 years ago

Python: 2.7.10 Pip: pip 18.1 from /Library/Python/2.7/site-packages/pip (python 2.7) OS: MacOS Mojave (10.14.2)

pip install robotframework-ride
Password:
Collecting robotframework-ride
  Downloading https://files.pythonhosted.org/packages/f7/87/efd10d2e4075ae59e34aeb1b6b28c30932e3ad6f999fa2450631e3abc155/robotframework_ride-1.7.3-py2.py3-none-any.whl (920kB)
    100% |████████████████████████████████| 921kB 10.2MB/s 
Installing collected packages: robotframework-ride
Successfully installed robotframework-ride-1.7.3
MacBook-Pro:robot-plugin juhosaarinen$ ride.py
wxPython not found.
You need to install wxPython 2.8.12.1 with unicode support to run RIDE.
wxPython 2.8.12.1 can be downloaded from http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/
This version will run also on wxPython 3.0.2, download from https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/

I think ride installation should fetch also the dependencies.

Hi-Fi commented 5 years ago

Running pip install -U -r https://raw.githubusercontent.com/robotframework/RIDE/master/requirements.txt made RIDE to work.

pekkaklarck commented 5 years ago

Apparently all requirements aren't defined in setup.py.

HelioGuilherme66 commented 5 years ago

It is a long time known fact that RIDE depends on wxPython. It was never on setup.py because it was installed standalone. Now that we can install with pip, setup.py should be updated.

pekkaklarck commented 5 years ago

See also #1794.

Hi-Fi commented 5 years ago

I think it's still not working with 1.7.3.1. With Mac getting:

Python 2.7

Juhos-MacBook-Pro:robotframework-java-example juhosaarinen$ pip install -U robotframework-ride
Collecting robotframework-ride
  Downloading https://files.pythonhosted.org/packages/4e/a6/1835a17fa566b19c166735a9a75d55101e53b68566771ddb0b690dd4be83/robotframework_ride-1.7.3.1-py2.py3-none-any.whl (926kB)
    100% |████████████████████████████████| 931kB 7.1MB/s 
Requirement already satisfied, skipping upgrade: Pygments in /Library/Python/2.7/site-packages (from robotframework-ride) (2.3.1)
Requirement already satisfied, skipping upgrade: Pypubsub in /Library/Python/2.7/site-packages (from robotframework-ride) (3.3.0)
Collecting Pywin32 (from robotframework-ride)
  Could not find a version that satisfies the requirement Pywin32 (from robotframework-ride) (from versions: )
No matching distribution found for Pywin32 (from robotframework-ride)

Python 3.7.1

Juhos-MacBook-Pro:robotframework-java-example juhosaarinen$ pip3 install -U robotframework-ride
Collecting robotframework-ride
  Using cached https://files.pythonhosted.org/packages/4e/a6/1835a17fa566b19c166735a9a75d55101e53b68566771ddb0b690dd4be83/robotframework_ride-1.7.3.1-py2.py3-none-any.whl
Collecting Pywin32 (from robotframework-ride)
  Could not find a version that satisfies the requirement Pywin32 (from robotframework-ride) (from versions: )
No matching distribution found for Pywin32 (from robotframework-ride)

With Windows:

C:\Users\IEUser\AppData\Local\Programs\Python\Python37\Scripts>pip3.7.exe install robotframework-ride
Collecting robotframework-ride
  Downloading https://files.pythonhosted.org/packages/4e/a6/1835a17fa566b19c166735a9a75d55101e53b68566771ddb0b690dd4be83/robotframework_ride-1.7.3.1-py2.py3-none-any.whl (926kB)
    100% |████████████████████████████████| 931kB 2.2MB/s
Collecting Pypubsub (from robotframework-ride)
  Downloading https://files.pythonhosted.org/packages/ab/9e/3b50915d3346971aaa49074425788598ee4907e67c097e013f1a862bd45c/Pypubsub-4.0.0-py3-none-any.whl (63kB)
    100% |████████████████████████████████| 71kB 2.3MB/s
Collecting wxPython (from robotframework-ride)
  Downloading https://files.pythonhosted.org/packages/bd/6e/ce469293cf6f7e391c11ec31161a9d6d0f2acffd05da2fb27bb3b3d81d1e/wxPython-4.0.4-cp37-cp37m-win_amd64.whl (23.0MB)
    100% |████████████████████████████████| 23.0MB 927kB/s
Collecting robotframeworklexer (from robotframework-ride)
  Downloading https://files.pythonhosted.org/packages/24/18/ad01d42227d824b890f1b4d32237e5003bf7afe8764cb13545fb63d7fcb5/robotframeworklexer-1.1-py3-none-any.whl
Collecting robotframework (from robotframework-ride)
  Using cached https://files.pythonhosted.org/packages/36/c6/6f89c80ac5a526a091bd383ffdfc64c9a68d9df0c775d4b36f03d8e0ac25/robotframework-3.1.1-py2.py3-none-any.whl
Collecting Pygments (from robotframework-ride)
  Using cached https://files.pythonhosted.org/packages/13/e5/6d710c9cf96c31ac82657bcfb441df328b22df8564d58d0c4cd62612674c/Pygments-2.3.1-py2.py3-none-any.whl
Collecting Pywin32 (from robotframework-ride)
  Downloading https://files.pythonhosted.org/packages/a3/8a/eada1e7990202cd27e58eca2a278c344fef190759bbdc8f8f0eb6abeca9c/pywin32-224-cp37-cp37m-win_amd64.whl (9.0MB)
    100% |████████████████████████████████| 9.1MB 2.2MB/s
Collecting Pillow (from wxPython->robotframework-ride)
  Downloading https://files.pythonhosted.org/packages/20/59/edb6fe64a608afc9fd1faf3470774b4131b4be9d40c496b0c144033e249a/Pillow-5.4.1-cp37-cp37m-win_amd64.whl (2.0MB)
    100% |████████████████████████████████| 2.0MB 3.3MB/s
Collecting six (from wxPython->robotframework-ride)
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
robotframework-ride 1.7.3.1 has requirement Pypubsub==3.3.0, but you'll have pypubsub 4.0.0 which is incompatible.
Installing collected packages: Pypubsub, Pillow, six, wxPython, robotframeworklexer, robotframework, Pygments, Pywin32, robotframework-ride

So it downloads in Windows Pypubsub 4.0.0, but then complains that 3.3.0 is required. Still things seem to be working fine with Pypubsub 4, so it's just false negative in log (at least according quick try)

HelioGuilherme66 commented 5 years ago

@Hi-Fi So the original problem is solved. The dependencies are installed, and RIDE opens in Mac and Windows. The problem of wrong versions is from the change to setup.py, which is not considering the conditions we have in requirements.txt. Seems that I have to advise users to do a two step installation, which is ugly:

pip install -r -U https://raw.githubusercontent.com/robotframework/RIDE/master/requirements.txt
pip install -U robotframework-ride
Hi-Fi commented 5 years ago

No, it's not solved on Mac, as Mac tries to install Windows things that fail the installation.

Windows works fine, but there's just that false negative printed to log.

HelioGuilherme66 commented 5 years ago

Please install with the two step I mentioned.

pekkaklarck commented 5 years ago

I seriously doubt two step installation is needed. It is possible to have environment specific requirements.

Hi-Fi commented 5 years ago

2 step install doesn't help with 1.7.3.1, as Pywin32 is not available for Mac (no idea where that comes from, as setup.py doesn't contain that). That's visible also mac logs at https://github.com/robotframework/RIDE/issues/1793#issuecomment-456676533

pekkaklarck commented 5 years ago

It comes from install_requires that setup.py has now in addition to requires for some reason.

kanchi240 commented 5 years ago

The first step has the following mistake:

(robot) appldeiMac:bin appl$ pip install -r -U https://raw.githubusercontent.com/robotframework/RIDE/master/requirements.txt
Could not open requirements file: [Errno 2] No such file or directory: '-U'

Python: 3.7.1 Pip: pip 10.0.1 from /Users/appl/pyenv/robot/lib/python3.7/site-packages/pip (python 3.7) OS: MacOS Mojave (10.14.2)

HelioGuilherme66 commented 5 years ago

@kanchi240 Thanks. The order is reversed, this is the correct:

pip install -U -r https://raw.githubusercontent.com/robotframework/RIDE/master/requirements.txt
pip install -U robotframework-ride
HelioGuilherme66 commented 5 years ago

2 step install doesn't help with 1.7.3.1, as Pywin32 is not available for Mac (no idea where that comes from, as setup.py doesn't contain that). That's visible also mac logs at #1793 (comment)

The two step is the solution, because requirements.txt has tags for operating system dependency. The problem is that I adapted setup.py based on SeleniumLibrary example, and looks like it does not accept the conditions. The Pywin32 is needed to create the Desktop Shortcut on Windows.

I now recommend to use the two step install in the release notes

Hi-Fi commented 5 years ago

It doesn't help. Yes, it installs dependencies (OS specific) but RIDE still can't be installed because of that Windows specific dependency.

In Mac also RIDE's version needs to be forced to 1.7.3.0, which installs fine (and works fine when dependencies are manually installed).

ksokolowski commented 5 years ago

Hello. I can confirm that his bug is also blocking RIDE update on Linux (Ubuntu).

pip install -U -r https://raw.githubusercontent.com/robotframework/RIDE/master/requirements.txt ---cut --- Successfully installed Pygments-2.3.1 Pypubsub-3.3.0 robotframework-3.1.1 robotframeworklexer-1.1 wxPython-4.0.4

After adding ton of dev libs to compile wxPython-4.0.4 I have all requirements in place. Why do we need wxPython4? Can't we still use wxPython provided from Linux distro?

Installing RIDE is failing on Linux because of Windows specific package dependency.

root@tauser-VirtualBox:~# pip install -U robotframework-ride Collecting robotframework-ride Using cached https://files.pythonhosted.org/packages/4e/a6/1835a17fa566b19c166735a9a75d55101e53b68566771ddb0b690dd4be83/robotframework_ride-1.7.3.1-py2.py3-none-any.whl Collecting Pywin32 (from robotframework-ride) Could not find a version that satisfies the requirement Pywin32 (from robotframework-ride) (from versions: ) No matching distribution found for Pywin32 (from robotframework-ride)

pekkaklarck commented 5 years ago

According to https://hynek.me/articles/conditional-python-dependencies the problem pywin32 is that old setuptools versions don't handle environment markers correctly when building wheels. It ought to thus be enough if @HelioGuilherme66 updates setuptools in his environment and builds and uploads new wheels. Adding a check to the build instructions to validate setuptools version is probably a good idea.

Should also go through setup.py and clean it up. At least unnecessary requires as wells as all changes introduced in 493b21b6335b12a2c1797621c3ef9cad0289946f should be removed.

HelioGuilherme66 commented 5 years ago

@pekkaklarck Current master has all this fixed now.

pekkaklarck commented 5 years ago

I disagree. As far as I can see 493b21b6335b12a2c1797621c3ef9cad0289946f just made things a lot worse. See my comment to that commit for more details.

maximyep commented 5 years ago

Hi all! All issues are exist. Only manual installation helped: python setup.py install

josthoma commented 5 years ago

Issues still persist. Requirements.txt still installing wrong packages on Linux

maximyep commented 5 years ago

Issues still persist. Requirements.txt still installing wrong packages on Linux

Install it with command: python setup.py install

0xLeon commented 5 years ago

I disagree. As far as I can see 493b21b just made things a lot worse. See my comment to that commit for more details.

It actually does make the situation WAY worse. Not only do your comments on the commit apply regarding execution point in time, the pre-processing of the requirements actively removes the environment markers. Before the referenced commit, just using up-to-date build tools would have fixed the wheels. I can confirm that, because I just built v1.7.3.1 locally with latest versions of setuptools and wheel installed. The resulting wheel does indeed have the environment markers saved in its metadata. With the change from 493b21b6335b12a2c1797621c3ef9cad0289946f, this will never work, because the prefiltering in setup.py strips the environment markers anyway.

I definitely appreciate uploading updated wheels at least for v1.7.3.1. Right now, the setup works, but will always install the old version 3.3.0 of PyPubSub regardless of the Python version.

Jamesparagon commented 5 years ago

So that we still can't install successfully via pip on Mac?

0xLeon commented 5 years ago

I have a working fix locally, but I can't yet file a merge request due to legal manners in my company. When I have the okay from my department to publish code to this project, I can submit a merge request.

The key problem are the changes in the commit I linked before as well as the outdated build environment used by the responsible developer for building and uploading the package to PyPI. This definitely needs to be addressed before your next release.

matthewdy commented 5 years ago

So that we still can't install successfully via pip on Mac?

download the code, and use "python setup.py install" to install on mac.

maximyep commented 5 years ago

Tested used latest Ubuntu 18.04 (clean install + updates): error still occurs: No matching distribution found for Pywin32 (from robotframework-ride)

Linux temp-VirtualBox 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

robotframework-ride.log

vickyeee861 commented 5 years ago

Hi, any one please help me. I'm using win10 and have installed robotframework and all dependencies applications on my machine. but i opened RIDE by using this command (ride.py) on CLI, its opened . but RIDE format is different . just 6 months back was working another organization there it was working good. but i tried same thing in this machine not getting that format type.

(robotframework version=2.8.4, Robotframework RIDE=1.2.3, pyhthon version=2.7.12)

please anyone help me and give valuable solution. i'm looking your reply..

mail id : vickyeee361@gmail.com

maximyep commented 5 years ago

please anyone help me and give valuable solution. i'm looking your reply..

Hi, Vickye! This issue is closed. It is not related to your question. But I suggest to use any other IDE (Eclipse or any) because RIDE is not good at all)

HelioGuilherme66 commented 5 years ago

@maximyep You are following this project in the hope it can be a good IDE? Do you want to help making it better? @vickyeee861 Please use the Google Group, or Slack chat to ask for help. Be prepared to better explain what your problem is, because:

but RIDE format is different

does not tell anything. And the versions you use are really old, so maybe the problem is related.

ntwrkguru commented 5 years ago

Your 2-step process (and of course the pip process) are still broken for OSX. Guess this is a low priority.

But, setup.py did prompt me to create a desktop shortcut, so that was really helpful. (sarcasm, indeed)

gaal-dev commented 5 years ago

pip install --no-deps -U robotframework-ride

HelioGuilherme66 commented 5 years ago

@ntwrkguru Did you tried to install current beta version?

Command is:

pip install -U robotframework-ride==1.7.4b1
ntwrkguru commented 5 years ago

I installed without an explicit version, as indicated in PyPi.

(the information below is outdated)

Perhaps this should be updated when a new release is cut or not included at all? This adds up to a suboptimal user experience, even for OSS.