-
Notifications
You must be signed in to change notification settings - Fork 713
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
Python 3 Support #2003
Comments
Hi Tom! Looking for help with this? I'm a Ren'Py user (http://www.anthrotari.com), fresh off of helping with a Python 2->3 migration for work, who wants to contribute something for Hacktoberfest (https://hacktoberfest.digitalocean.com). I'd be glad to get the ball rolling on this. |
Hi guys, how is the python 3 migration looking? I only ask because my brother is learning python in order to develop games with Renpy (great project btw!) and I've advised him to get his machine set up for python 3. Then we've realised you're actually running python 2 still. I'm a bit hesitant to advise him to start learning python 2 in 2019. Is the migration definitely going to happen or are you struggling to get the time and resources? (Completely understandable if you are of course!) |
@danballance To develop games with Ren'Py it isn't necessary to setup a specific environment. In addition there isn't much difference between Python 2 and 3 in terms of syntax. Regarding the current status of Python 3 support, some contributors have been working on it recently. |
Thanks for the pointer and update. Much appreciated :) |
Hi, just wondering how the progress on this has been? I would like to use Ren'Py as a "frontend" to my game core but it relies on a lot of Python 3 functionality (RxPy 3, dataclasses, dict unpacking, preserving order of dict keys, type annotations, etc.). I noticed there is a "python 3" branch, but it looks like it hasn't been updated in quite some time? |
Yes, it will not stop working, but distributions are already removing python2-only packages and this means that RenPy will be ditched from most Linux distributions as well. One may argue that users still may use stand-alone renpy setups shipped with games, but many games does not provide builds for Linux — that's why we have renpy at distro level to have all games playable. Of course users still may use RenPy from other sources: other games or some virtual environment with old python2 still available. But such ordeals will definitely degrade user experience and this is something we need to avoid. So it would be very nice to know an ETA on when RenPy will be ported to python3. |
I just want to point out that the Python2 removal process in Debian testing has caught up with Ren'Py now. On my daily driver system (a laptop running Bullseye), So as of right now, anyone using Ren'Py on Debian Bullseye has to choose whether to let their system get increasingly out of sync with the Debian repos, uninstall Ren'Py, or try to hack together a solution with custom dummy packages or somesuch. |
What's left of porting to Python 3, is there a contribution guide? What about RAPT? Does it work on Android using Python 3? |
Yeah, was about to start some backend work to help a friend out with their Ren'Py game, and realized that its still running Python 2? People have commented that the syntax is not changed much, but many APIs have. A lot of the utility of Ren'py comes from the Python backend. Any comments on the port? @renpytom @thirdtruck |
Are there plans to move from Ren'Py 7 (Python2) to Ren'Py 8 (Python3) in the next while? I know the Ren'Py Team (and renpytom especially) has its hands full with all the stuff they're working on, but I'm finding the lack of Python3 support to be a significant barrier. I've had to implement several pieces of functionality that are part of the standard library in Python3. Additionally, I've got a few things I've left until the Python3 migration because they either depend on external libraries (almost all actively maintained libraries have dropped support for Python2) or because they're hampered by bugs that were fixed in Python3 but the fix was not backported to Python2. At this point, I can't imagine any feature that would be more helpful for developing my game than Python3 support. |
I really hope this becomes the #1 priority soon. Python 2 has been EOL for more than half a year now... [Edit] Wait, make that a year and a half. Wow. |
RenPy savages python under the hood, destroying expected notions of scope
and overloading extremely fundamental language constructs. So I can
imagine that retooling for Python 3 might be close to a ground-up
endeavor. Working with Python 2 is pretty awkward these days, but at least
you're not trying to import pip-installed functionality into RenPy like I
just did this morning ;)
…On Fri, Aug 13, 2021 at 4:44 AM darrickyee ***@***.***> wrote:
I really hope this becomes the #1 <#1>
priority soon. Python 2 has been EOL for more than half a year now...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2003 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACTF5FE7O7WLPFQDU6HZIUDT4UVU5ANCNFSM4IW3Q7LA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
Interesting. It seems like that should motivate updating to Python 3 sooner rather than later! Otherwise adding more features means even more conversion work later... |
I also imagine this is the issue as well. It is my understanding that renpy works by: turning the renpy source into an ast, then converting it into python, then manipulating python directly to achieve things like rollback and fast forwarding. (Ref: issue 301; The associated code is in ast.py, translation, parser.py, and python.py )
EDIT: It seems you can run some Python 3 code inside RenPy ( Ref? : parser.py ), Further EDIT: Apparently it is happening either later this year or next year. Looking forward to it! |
I'd expect python3 to happen late this year or early next year. |
So, any updates on porting to Python 3? |
Yes, there are Ren'Py 8 nightly builds being produced. |
Since I've been getting a lot of people asking about this. Yes, Ren'Py is going to be ported to Python 3. That will very likely take place later this year, or early next year, once the OpenGL Rewrite that I'm working on is mature enough that I can spend some time on something else.
My goal is to keep releasing a Python 2.7-based Ren'Py 7 for several years after that, to allow older games to keep working on newer computer. At the same time, I'll to release Ren'Py 8, based on a Python 3.x version, for newer development.
It's important to realize that Python 2.7 will not stop working in 2020 or anytime soon. The games that work today will still work today, and new games created with Ren'Py 7 will still continue to work. Many of the advantages of Python 3, like unicode strings, have been adopted by Ren'Py. So while this is something that I plan to do soon, right now I'd like to focus on work that more directly improves what Ren'Py is capable of. (And to be honest, to focus on something I'd enjoy way more than getting the Python 3 stack up on a bunch of unsupported platforms.)
The text was updated successfully, but these errors were encountered: