I have a small Pyramid application installed into two virtualenvs, one
for Python 2.7 and one for Python 3.2. The server section in the INI
file looks like this:

===
[server:main]
use = egg:waitress#main
host = 127.0.0.1
port = 5000
===

There is no [DEFAULT] section. When I run "pserve --reload
development.ini" under Python 2.7, it runs as expected: "serving on
http://127.0.0.1:5000";.  When I run under 3.2, it says "socket.error:
[Errno 98] Address already in use" because it's trying to use the same
port. So I tried to override this with:
"pserve --reload development.ini port=5001".  Now it does something
unexpected: "serving on http://127.0.0.1:8080";. Where did that number
come from? It turns out it's Waitress's default. (pserve.py also has
some 8080 defaults, but it looks like they apply only to Wsgiref and
CherryPy servers.)

So why didn't it honor my 'port' specification, and why did it
apparently delete 'port' from the configuration instead?

I looked in pserve.py to figure out if it applies command-line
variables to the server section, app section, or both. It looks like
it adds them to the defaults (global_conf). I assume that means these
are fallback values for the server and app sections, rather than
overrides. The user would expect them to be overrides, and may want
them to apply specifically to the server, app, or both. But in any
case, whether they're fallbacks or overrides, it doesn't explain why
the parameter is reverting to its upstream default value.

Am i misunderstanding how command-line var=value are supposed to work,
or is this a bug?

-- 
Mike Orr <[email protected]>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to