On Wed, Feb 10, 2021 at 5:33 PM Paul Moore <p.f.mo...@gmail.com> wrote:
>
> So get PYTHONUTF8 added to the environment activate script. That's a
> simple change to venv. And virtualenv, and conda - yes, it need to
> happen in multiple places, but that's still easier IMO than proposing
> a change to Python's already complex (and slower than many of us would
> like) startup process.

I am not sure this idea works fine. Is the activate script always
called when venv is used on Windows?

When I use venv on Unix, I often just execute .venv/bin/some-script
without activating the venv.


> > Personally, I do not start out with environments with my beginning students 
> > -- they really only need one at the early stages. But other instructors do.
> >
> > Others have to work with a locked down system provided by their employer 
> > that might be an older version of Python, or need some particular 
> > configuration that they don't want to override.
> >
> > And all the examples given here of how to set environment variables and 
> > shortcuts, etc on Windows is EXACTLY the kind of information  I don't want 
> > to have to provide for my students :-( -- I'm teaching Python, not Windows 
> > administration.
>
> So teach Python as it actually is, surely? If you teach people how to
> use "Python-with-UTF8-mode", won't they struggle when introduced to
> the real world where UTF8 mode isn't set? Won't they assume the
> default encoding for open() is UTF-8, and be confused when they are
> wrong? Yes, I know your job as an instructor is to omit confusing
> details, and UTF8 mode would help with that. I get that. But that's
> just one case.
>

Students may need to learn about encoding at some point.
But when they learn "how to read/write file" first time, they don't
need to know what encoding is.

VSCode, notepad, PyCharm use UTF-8 by default.
Students don't need to learn how to use encoding other than UTF-8
until really need it.


> And anyway, would you not have to explain how to set UTF-8 mode for
> the training environment one way or another anyway? Sure, you may not
> have to explain how to set an environment variable. But you have to
> explain how to configure an ini file instead.

We can add "Enable the UTF-8 mode" checkbox to the installer.
And we can have "Enable the UTF-8 mode" tool in the start menu.
So students don't need to edit the ini file manually.

The problem is; should we recommend to enable UTF-8 mode globally by
setting environment variable, or provide a per-site UTF-8 mode
setting?


> >> > I don't want to recommend env vars and registry for conda and portable
> >> > Python users...
> >
> > and a lot of newbies learning Python for data science are starting out with 
> > conda as well ...
>
> So conda could set UTF-8 mode with "conda env --new --utf8". No
> changes to core Python interpreter startup needed.
>

They may not want to promote UTF-8 mode until official Python promote
UTF-8 mode.
So I think venv should support UTF-8 mode first.


> >> I'm not sure what you mean here. Why is this different from (say)
> >> PYTHONPATH? How would conda and portable python users configure
> >> PYTHONPATH? Why is UTF-8 mode any different?
> >
> >
> > It's not -- using PYTHONPATH is a "bad idea" I never recommend it to 
> > anyone. It was a nightmare when folks have Python 2 and 3 on the same 
> > machine, but now, in the age of environments, it's still a really bad idea.
>
> Sure, PYTHONPATH was just an example. Environment variables are how
> you configure Python in many ways. I'm asking why UTF-8 mode is so
> special it needs a different configuration mechanism than every other
> setting for Python.
>

Because it solves many real world problem that many Windows users suffer.

-- 
Inada Naoki  <songofaca...@gmail.com>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/CXJOASSPLNV4EAE47RNZZ2UEF4TGHE6L/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to