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
Hyde cannot install on Python 3 #270
Comments
Considering #237 has been open for a year, I'd say Hyde is abandoned... MKDocs might fit the bill for pythonjobs. |
I've made some progress porting Hyde's dependencies (see hyde/fswrap#3, hyde/commando#15, and hyde/commando#16). Supporting both language versions shouldn't be difficult. I expect the changeset to be relatively small based on the |
I've made considerable progress toward a Python 3 version. I'm working on a work-in-progress branch that still needs work, but all but a couple of tests are passing. Other than Hyde's source code, the following dependencies need Python 3 compatibility:
AsciiDoc is a tricky one here. There has been considerable and ongoing discussion on the topic of Python 3 compatibility, and there's certainly more work to be done on that front. Given the size and age of the project, it's potentially out of the scope of this ticket. I don't know for sure that this is a blocker given that it's an optional template filter and isn't part of Hyde's core. i.e. if the only blocker ends up being AsciiDoc, which seems to be completely optional (please correct me if I'm wrong on this point) and requires other effort to use anyway, we may be able to move forward and note the caveat (that AsciiDoc support will not work under Python 3) in the documentation. If others have interest in aiding this effort, any work on #277 would make the test-driven porting process more reliable. Additionally, if I've missed any requirements that need porting, or if there are any other questions / concerns / thoughts on this feature, please list them here. Initially, once the port is ready, I'd like to release "experimental" support for running Hyde under Python 3. Once a few users in addition to myself have tested it, (hopefully not) uncovered any bugs, and are satisfied with the functionality under both versions, we can call the Python 3 support official, ideally in time for More soon... |
@lakshmivyas Great, the direction I was leaning was to try to import it when needed and, when under Python 3, raise an exception with a message for the end user explaining that Hyde currently support Python 3, but AsciiDoc does not. Thanks for clearing that up. |
So, what is the status of this issue? |
There is going to be an intermediate release soon to get the current fixes out. Python 3.x compatibiliity and other features are planned for hyde 1.0 release. |
I would suggest that 0.9.0 be the intermediate release and 0.10.0 be the first 3.x compatible release. And 1.0.0 onwards, semantic versioning. |
@pradyunsg - Yes, 0.9.0 is planned. I am not sure about 0.10.0 vs 1.0.0. We'll have to wait and see how the 3.x version turns out. I agree with your suggestion in general though. |
I could lend a hand with the porting, if time permits... I have done so for another (major) codebase. What's the plan of action for the porting? And tests? |
@pradyunsg - @jonafato has a better understanding of where everything stands. |
As far as tests go, I think what we have is good enough to be confident about the port. |
I have a Python 3 work-in-progress branch on my fork. I'll do a bit of cleanup on it this weekend and push it to a branch here. Here's the plan that's been in my head:
|
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This does not mean that Python 3 support is stable, however. As a plan forward, we should encourage interested users to run Hyde with Python 3, report bugs, and submit patches. This change references the Python 3 Support issue on GitHub (#270). Once this becomes a bit more tested and stable, that issue should be closed, and Hyde should announce official, stable support for Python 3 (i.e. new changes must also support 3, issues with running hyde under 3 should be considered bugs rather than feature requests, etc.). Changes: - Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers. - Replace uses of 2-specific code with their ``hyde._compat`` versions. - Tests remain largely unchanged (for good reason). The exceptions here are to ``print`` function calls, and ``str`` type usage, and compatibility imports. - Replace explicit calls to ``foo.next()`` with ``next(foo)``. This keeps code portable between Python 2's ``next`` and Python 3's ``__next__`` methods without the need for any compatibility functions and is the recommended API for interacting with these methods. - Replace deprecated (and, in Python 3, removed) ``except Exception, e:`` statements with their updated ``except Exception as e:`` versions. - Replace print statements with print function calls (because of how parentheses work in Python, this is transparently cross-version-compatible). - Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and classifiers in ``setup.py``. - Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage during development. - Add Python 3 note in changelog. * asciidoc does not support Python 3, and fixing that far beyond the scope of this task, so the test that deals with it is conditionally skipped when run using versions of Python 3.
ImportError: No module named 'UserDict' <-- Doesn't exist in Python3.x model.py site.py
exceptions.py
layout.py
|
And, with those changes above:
|
@CrustyBarnacle are you using the master branch? Hyde currently supports Python 2 and Python 3 (see #307), so if something is not working in master, it's a bug. (Note: there has not been a release including these changes yet. I'll try to make this happen in the next couple of days.) |
@jonafato Currently using what pip installed.
Can I just uninstall with pip and then... ? Hope one of these options is what I'm looking for:
|
The installation is now painless but there are issues running the server. And, by the looks of it, not all code in the stack is Python 3 compatible. |
Is there a Hyde Python3 version on GitHub available for download and ready for use? It would be a dream come true |
@ramanshsharma2806 I know it's been almost a year since your comment, but for anyone else who finds this issue I have taken up a role as a maintainer on Hyde and will be actively working on a 1.0.0 branch to fix Python 3 support. To just get to the point of being able to use Hyde's basic features the fix proposed in #326 (comment) should resolve outstanding issues for installation along with most of the basic commands, but more rigorous fixes will be coming in 1.0.0 |
Since this commit is the one i'm using on the project board I will use this commit as the primary hub for collecting information for 1.0.0. It looks like there are two branches that fix various incompatabilities and are worth a look during 1.0.0 development: Additionally The issue mentioned in #326 should be resolved when a PR to resolve all the issues mentioned is created. |
I'm new to this all, but just in case it helps anyone else. I got hyde working on python 3.5 by: Works great! Thanks to all the great people putting there life-hours in to this, so we can all win. Best to you all! |
Great work @Descent098 :) |
Build dependencies don't install under Python 3.
I get this error when trying to install hyde:
The text was updated successfully, but these errors were encountered: