Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #58463 > unrolled thread
| Started by | Victor Hooi <victorhooi@gmail.com> |
|---|---|
| First post | 2013-11-04 14:33 -0800 |
| Last post | 2013-11-04 15:44 -0800 |
| Articles | 3 — 2 participants |
Back to article view | Back to comp.lang.python
ValueError: zero length field name in format - Running under Python 2.7.3? Victor Hooi <victorhooi@gmail.com> - 2013-11-04 14:33 -0800
Re: ValueError: zero length field name in format - Running under Python 2.7.3? Chris Angelico <rosuav@gmail.com> - 2013-11-05 10:02 +1100
Re: ValueError: zero length field name in format - Running under Python 2.7.3? Victor Hooi <victorhooi@gmail.com> - 2013-11-04 15:44 -0800
| From | Victor Hooi <victorhooi@gmail.com> |
|---|---|
| Date | 2013-11-04 14:33 -0800 |
| Subject | ValueError: zero length field name in format - Running under Python 2.7.3? |
| Message-ID | <6d41ee79-16d2-4b18-8c47-84d957d892d9@googlegroups.com> |
Hi,
I have a Python script that's using a format string without positional specifiers. I.e.:
LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S'))
I'm running this from within a virtualenv, running under Python 2.7.3.
$ python -V
Python 2.7.3
$ which python
/opt/my_project_venv/bin/python
The first line of the script is:
#!/usr/bin/env python
However, when I run this line, I get the following error:
Traceback (most recent call last):
File "my_script.py", line 25, in <module>
LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S'))
ValueError: zero length field name in format
The weird thing, when I start a Python REPL and run that line interactively, it works fine:
$ python
Python 2.7.3 (default, Jan 7 2013, 11:52:52)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> LOG_FILENAME = 'my_project_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S'))
>>> print(LOG_FILENAME)
my_project_2013-05-11_09.29.47.log
My understanding was that in Python 2.7/3.1, you could omit the positional specifiers in a format string.
Cheers,
Victor
[toc] | [next] | [standalone]
| From | Chris Angelico <rosuav@gmail.com> |
|---|---|
| Date | 2013-11-05 10:02 +1100 |
| Message-ID | <mailman.2034.1383606180.18130.python-list@python.org> |
| In reply to | #58463 |
On Tue, Nov 5, 2013 at 9:33 AM, Victor Hooi <victorhooi@gmail.com> wrote:
> However, when I run this line, I get the following error:
>
> Traceback (most recent call last):
> File "my_script.py", line 25, in <module>
> LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S'))
> ValueError: zero length field name in format
>
>
> The weird thing, when I start a Python REPL and run that line interactively, it works fine
Google tells me that that was an issue in Python 2.6, so my first
check would be to see what `/usr/bin/env python` actually gives you -
are you running inside an environment that changes your path? Drop a
"import sys; print(sys.version)" at the top of your script and see
what it's really running as.
ChrisA
[toc] | [prev] | [next] | [standalone]
| From | Victor Hooi <victorhooi@gmail.com> |
|---|---|
| Date | 2013-11-04 15:44 -0800 |
| Message-ID | <e669fdd0-515e-46fb-ae2c-78ac7ab557ae@googlegroups.com> |
| In reply to | #58466 |
Hi,
You're right - it was sudo playing up with the virtualenv.
The script was in /opt, so I was testing with sudo to get it to run.
I should have setup a service account, and tested it with that =).
$ python sync_bexdb.py
2.7.3 (default, Jan 7 2013, 11:52:52)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
$ sudo python sync_bexdb.py
[sudo] password for victor:
2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
Cheers,
Victor
On Tuesday, 5 November 2013 10:02:50 UTC+11, Chris Angelico wrote:
> On Tue, Nov 5, 2013 at 9:33 AM, Victor Hooi <victorhooi@gmail.com> wrote:
>
> > However, when I run this line, I get the following error:
>
> >
>
> > Traceback (most recent call last):
>
> > File "my_script.py", line 25, in <module>
>
> > LOG_FILENAME = 'my_something_{}.log'.format(datetime.now().strftime('%Y-%d-%m_%H.%M.%S'))
>
> > ValueError: zero length field name in format
>
> >
>
> >
>
> > The weird thing, when I start a Python REPL and run that line interactively, it works fine
>
>
>
> Google tells me that that was an issue in Python 2.6, so my first
>
> check would be to see what `/usr/bin/env python` actually gives you -
>
> are you running inside an environment that changes your path? Drop a
>
> "import sys; print(sys.version)" at the top of your script and see
>
> what it's really running as.
>
>
>
> ChrisA
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web