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
Cannot install gevent 1.3.0 on CentOS 7.5 #1209
Comments
Thanks for the report. Your version of setuptools is too old to understand environment markers (and presumably wheels). You'll need to update it. |
Hello, Just tried to install with setuptools version 39.1.0, and it still fails with the same error message. |
The wheels are built on CentOS 5 and I can't reproduce that problem there. It might help if you showed the complete sequence of commands you use and their output, starting from when you create the virtual environment. |
We have a vagrant CentOS 7.5 box. First, we enable virtualenv-3.4 (the python version is 3.4.2) pip install -r file.txt Inside file.txt are the following lines (only a few lines shown): sqlalchemy==1.2.7 The last package, grequests, is what installs gevent 1.3.0. Interestingly, if we add an older version of gevent explicitly, like so: sqlalchemy==1.2.7 then the installation problem disappears. |
I would suggest that the first thing you do in your virtual environment is EDIT: FWIW, Python 3.4.4 ships setuptools-18.2 in its |
Thanks, your suggestion helped. Now we are getting a greenlet-related error. This one is from a unit-test running, and not during installation:
|
Look closely at the output of |
I think that was it. In an activated environment, we now do: pip install -U pip The greenlet problem has also disappeared. |
By the way, one test case is still failing with the following warning:
We do do monkey-patching as the first statement of the relevant file. |
That seems fine to me. Newer point releases of Python include the required versions so you could also consider updating that. |
Something else in your environment must be importing |
This is during the running of a test case using nosetests, so I am not sure how to use the -vvv option with that. Also, I am running just a single test case, not a suite of them, and the test case file does not contain any import of ssl. It's possible that ssl is imported by one of the other packages? I don't think we use sitecustomize.py. |
Yes, it's possible something during test discovery imported SSL. I personally don't recommend monkey-patching at the top of regular unittest files that will be run in the same process by a generic testrunner like nose/nose2/zope.testrunner, because the discovery process will import things in unpredictable orders and you can wind up with bad interactions. gevent's own test suite forks a new process for each file, guaranteeing no such interactions. (If you have In my office job, unit tests simply aren't allowed to monkey-patch---only the main application monkey-patches. If we need to use gevent APIs, we import them and use them directly. |
Sorry I was not clear. Monkey-patching is only at the top of the code file that the test case is trying to test. And in that file, the top two lines are: import gevent.monkey BTW, while on the topic, would you recommend patch_all() without any parameters specified? |
Still, if you're running more than one test in the same process, I wouldn't recommend that. And also still, if you're using a testrunner, it's likely the discovery process is importing something that imports ssl. You'll just have to look into it.
Yes, I absolutely would recommend a simple call to |
Description:
Cannot install gevent 1.3.0 on CentOS 7.5
What I've run:
Tried to install gevent in a freshly provisioned CentOS 7.5 box.
The text was updated successfully, but these errors were encountered: