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

Wheel installation issues (dependencies) #79

Closed
MinchinWeb opened this issue Nov 16, 2015 · 4 comments
Closed

Wheel installation issues (dependencies) #79

MinchinWeb opened this issue Nov 16, 2015 · 4 comments
Labels

Comments

@MinchinWeb
Copy link
Contributor

I believe this issue is caused by bbdfb2a.

When installing from wheels, no code is executed (at install time). Thus, code that conditionally determines which dependencies are required will be run when the wheel is generated, rather than when the wheel is installed.

By way of example, I am installing topydo 0.7.0 on my local machine (Win 10, Python 3.5) from PyPI. I would expect that six, arrow, and colorama would be installed. Instead, I got ushlex, six, python-dateutil, arrow, and backports.shutil-get-terminal-size.

(env2) C:\temp>pip install topydo
Collecting topydo
  Downloading topydo-0.7-py2.py3-none-any.whl (89kB)
    100% |################################| 90kB 649kB/s
Collecting ushlex (from topydo)
  Downloading ushlex-0.99.tar.gz
Collecting six>=1.9.0 (from topydo)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting arrow>=0.7.0 (from topydo)
Collecting backports.shutil-get-terminal-size>=1.0.0 (from topydo)
  Downloading backports.shutil_get_terminal_size-1.0.0-py2.py3-none-any.whl
Collecting python-dateutil (from arrow>=0.7.0->topydo)
  Using cached python_dateutil-2.4.2-py2.py3-none-any.whl
Installing collected packages: ushlex, six, python-dateutil, arrow, backports.shutil-get-terminal-size, topydo
  Running setup.py install for ushlex
Successfully installed arrow-0.7.0 backports.shutil-get-terminal-size-1.0.0 python-dateutil-2.4.2 six-1.10.0 topydo-0.7 ushlex-0.99

(env2) C:\temp>python --version
Python 3.5.0

Possible solutions include not providing wheels, or at least not universal wheels, or using extra_requires (available since wheel 0.24, see here and here)

MinchinWeb referenced this issue Nov 16, 2015
Installing from the source distribution (sdist), ushlex and
shutil_get_terminal_size were not installed. Putting the condition in
install_requires addresses this.
@bram85
Copy link
Member

bram85 commented Nov 16, 2015

Thanks for reporting.

I think my plan of action will be to revert commit bbdfb2a and only provide wheels from now on.

bram85 added a commit that referenced this issue Nov 16, 2015
This reverts commit bbdfb2a.

(Wheel) dependencies are evaluated at build time, so they should stay in
extras_require, which are evaluated at install-time.

See issue #79.
@bram85 bram85 added the bug label Nov 16, 2015
@bram85
Copy link
Member

bram85 commented Nov 29, 2015

Fixed in 0.8, only providing wheels (for now).

@bram85 bram85 closed this as completed Nov 29, 2015
@MinchinWeb
Copy link
Contributor Author

Installing from pip seems to be working with v0.8. 👍

@bram85
Copy link
Member

bram85 commented Nov 30, 2015

Glad to hear that, sorry about the mess with 0.7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants