skoczen / will

Will is a simple, beautiful-to-code bot for slack, hipchat, and a whole lot more.
https://heywill.io
MIT License
406 stars 171 forks source link

'install_requires' must be a string when installing #315

Closed shadow7412 closed 6 years ago

shadow7412 commented 6 years ago

I decided to try the cheap and lazy upgrade path for a start, and migrating to the new options while it's running to minimise downtime.

I didn't get very far though; error in will setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers

Is this a problem with my virtualenv being python 2?

skoczen commented 6 years ago

@shadow7412 hm. Shouldn't be - I'm running py2 here. What version of pip are you using?

shadow7412 commented 6 years ago

pip 9.0.1 - as far as I can tell, the latest.

skoczen commented 6 years ago

@shadow7412 what command are you running? This is what I get fresh:


$ mkvirtualenv test-will-py2
New python executable in /Users/skoczen/.virtualenvs/test-will-py2/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/skoczen/.virtualenvs/test-will-py2/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/skoczen/.virtualenvs/test-will-py2/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/skoczen/.virtualenvs/test-will-py2/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/skoczen/.virtualenvs/test-will-py2/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/skoczen/.virtualenvs/test-will-py2/bin/get_env_details
(test-will-py2) [ skoczen hematite ~ ] 
$ python -V
Python 2.7.14
(test-will-py2) [ skoczen hematite ~ ] 
$ pip install will
Collecting will
  Downloading will-2.0.2.tar.gz (178kB)
    100% |████████████████████████████████| 184kB 2.2MB/s 
Collecting hiredis==0.2.0 (from will)
Collecting redis==2.10.6 (from will)
  Using cached redis-2.10.6-py2.py3-none-any.whl
Collecting APScheduler==2.1.2 (from will)
  Using cached APScheduler-2.1.2-py2.py3-none-any.whl
Collecting beautifulsoup4==4.6.0 (from will)
  Using cached beautifulsoup4-4.6.0-py2-none-any.whl
Collecting bottle==0.12.7 (from will)
Collecting CherryPy==3.6.0 (from will)
Collecting clint==0.3.7 (from will)
Collecting dill==0.2.1 (from will)
Collecting dnspython==1.15.0 (from will)
  Using cached dnspython-1.15.0-py2.py3-none-any.whl
Collecting fuzzywuzzy==0.15.1 (from will)
  Using cached fuzzywuzzy-0.15.1-py2.py3-none-any.whl
Collecting Jinja2==2.7.3 (from will)
Collecting Markdown==2.3.1 (from will)
Collecting MarkupSafe==0.23 (from will)
Collecting will-natural==0.2.1.1 (from will)
  Using cached will-natural-0.2.1.1.tar.gz
Collecting parsedatetime==1.1.2 (from will)
Collecting python-Levenshtein==0.12.0 (from will)
Collecting pyasn1-modules==0.0.5 (from will)
Collecting pyasn1==0.1.7 (from will)
Collecting pycrypto==2.6.1 (from will)
Collecting pygerduty==0.28 (from will)
Collecting pytz==2017.2 (from will)
  Using cached pytz-2017.2-py2.py3-none-any.whl
Collecting PyYAML==3.10 (from will)
Collecting regex==2017.9.23 (from will)
Collecting requests==2.18.4 (from will)
  Using cached requests-2.18.4-py2.py3-none-any.whl
Collecting six==1.10.0 (from will)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting slackclient>=1.0.5<1.1.0 (from will)
  Downloading slackclient-1.1.0.tar.gz
Collecting will-markdownify==0.4.1 (from will)
  Downloading will-markdownify-0.4.1.tar.gz
Collecting sleekxmpp==1.3.2 (from will)
Collecting html2text (from will)
Collecting python-ddp (from will)
Collecting args (from clint==0.3.7->will)
Requirement already satisfied: setuptools in ./.virtualenvs/test-will-py2/lib/python2.7/site-packages (from python-Levenshtein==0.12.0->will)
Collecting idna<2.7,>=2.5 (from requests==2.18.4->will)
  Using cached idna-2.6-py2.py3-none-any.whl
Collecting urllib3<1.23,>=1.21.1 (from requests==2.18.4->will)
  Using cached urllib3-1.22-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests==2.18.4->will)
  Using cached certifi-2017.11.5-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.18.4->will)
  Using cached chardet-3.0.4-py2.py3-none-any.whl
Collecting websocket-client<1.0a0,>=0.35 (from slackclient>=1.0.5<1.1.0->will)
  Using cached websocket_client-0.44.0-py2.py3-none-any.whl
Collecting meteor-ejson (from python-ddp->will)
Collecting pyee (from python-ddp->will)
  Downloading pyee-5.0.0-py2.py3-none-any.whl
Collecting ws4py (from python-ddp->will)
Building wheels for collected packages: will, will-natural, slackclient, will-markdownify
  Running setup.py bdist_wheel for will ... done
  Stored in directory: /Users/skoczen/Library/Caches/pip/wheels/ca/c8/bd/e6ceccfc4f96fe1c2b5b87f7606d81c0cf3b13c249c5fff4b7
  Running setup.py bdist_wheel for will-natural ... done
  Stored in directory: /Users/skoczen/Library/Caches/pip/wheels/5d/da/b8/954deb8363d52f063e18f0d9f5a8987fa4040820d97ba098f5
  Running setup.py bdist_wheel for slackclient ... done
  Stored in directory: /Users/skoczen/Library/Caches/pip/wheels/ef/2b/61/bd0ff8ba25e241ba7fcef46b66da6f73d0acfb3c71d7951b76
  Running setup.py bdist_wheel for will-markdownify ... done
  Stored in directory: /Users/skoczen/Library/Caches/pip/wheels/7f/56/b5/a585d6c68dbdf554c082c7bd679d31fa79d59d75cc03ce5863
Successfully built will will-natural slackclient will-markdownify
Installing collected packages: hiredis, redis, APScheduler, beautifulsoup4, bottle, CherryPy, args, clint, dill, dnspython, fuzzywuzzy, MarkupSafe, Jinja2, Markdown, six, will-natural, parsedatetime, python-Levenshtein, pyasn1, pyasn1-modules, pycrypto, pygerduty, pytz, PyYAML, regex, idna, urllib3, certifi, chardet, requests, websocket-client, slackclient, will-markdownify, sleekxmpp, html2text, meteor-ejson, pyee, ws4py, python-ddp, will
Successfully installed APScheduler-2.1.2 CherryPy-3.6.0 Jinja2-2.7.3 Markdown-2.3.1 MarkupSafe-0.23 PyYAML-3.10 args-0.1.0 beautifulsoup4-4.6.0 bottle-0.12.7 certifi-2017.11.5 chardet-3.0.4 clint-0.3.7 dill-0.2.1 dnspython-1.15.0 fuzzywuzzy-0.15.1 hiredis-0.2.0 html2text-2017.10.4 idna-2.6 meteor-ejson-1.1.0 parsedatetime-1.1.2 pyasn1-0.1.7 pyasn1-modules-0.0.5 pycrypto-2.6.1 pyee-5.0.0 pygerduty-0.28 python-Levenshtein-0.12.0 python-ddp-0.1.5 pytz-2017.2 redis-2.10.6 regex-2017.9.23 requests-2.18.4 six-1.10.0 slackclient-1.1.0 sleekxmpp-1.3.2 urllib3-1.22 websocket-client-0.44.0 will-2.0.2 will-markdownify-0.4.1 will-natural-0.2.1.1 ws4py-0.4.2
(test-will-py2) [ skoczen hematite ~ ] 
$ 
shadow7412 commented 6 years ago

Same thing, even in a fresh virtual environment.

Though there was one thing of interest: Apparently this server uses python 2.7.8, in contrast to your 2.7.14...

skoczen commented 6 years ago

What version of setuptools?

shadow7412 commented 6 years ago

Bingo.

It was using the system installed setuptools. I installed the latest version in the virtual environment, and we're away.

Thanks for that.

skoczen commented 6 years ago

Feels like I should be able to require a higher version somehow, though it's a bit of chicken/egg. Know what version you were on?

shadow7412 commented 6 years ago

Adding it to the required list doesn't make sense - as that's what it failed to parse :P I don't even see setuptools in pip freeze on the system, so I'm not sure. It is on pip==1.5.6 though, so I suspect ancient.

If you have a 'troubleshooting installation' page, it might be worth a mention there, but aside from that it's probably not worth worrying about. Just blame the fact I'm trying to run will on ancient (ie, 2014) version of centos because of certain company mandates...

skoczen commented 6 years ago

Cool. I've thought about making a "common installation questions/hiccups" page - maybe I'll just stash this for now for a future mention. Thanks for debugging with me!