List Info

Thread: Where to set the cwd?




Where to set the cwd?
user name
2008-02-23 16:02:04
Where in my Django code files can I set the current working
directory 
(so that it applies to all my code)?

I'm trying to make sure that all paths in my Python code are
relative 
paths. But I think I need to know where I can put the cwd
change so that 
it runs when Django first comes up.

I'm on Apache and mod_python on Windows.

Thanks,
Michael


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Django users" group.
To post to this group, send email to django-usersgooglegroups.com
To unsubscribe from this group, send email to
django-users-unsubscribegooglegroups.com
For more options, visit this group at htt
p://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---


Re: Where to set the cwd?
country flaguser name
Australia
2008-02-23 17:01:36

On Sat, 2008-02-23 at 16:02 -0600, Michael Hipp wrote:
> Where in my Django code files can I set the current
working directory 
> (so that it applies to all my code)?
> 
> I'm trying to make sure that all paths in my Python
code are relative 
> paths. But I think I need to know where I can put the
cwd change so that 
> it runs when Django first comes up.

No, you don't. What you want to do is set the Python path
variable in
your environment. Have a look at Django's documentation on
mod_python
setup to see how to set that environment variable. That's
the standard
way to do this.

Malcolm

-- 
Save the whales. Collect the whole set. 
http://www.pointy-s
tick.com/blog/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Django users" group.
To post to this group, send email to django-usersgooglegroups.com
To unsubscribe from this group, send email to
django-users-unsubscribegooglegroups.com
For more options, visit this group at htt
p://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---


Re: Where to set the cwd?
user name
2008-02-23 18:42:07
Graham Dumpleton wrote:
> On Feb 24, 11:08 am, Michael Hipp <Mich...Hipp.com> wrote:
>> Malcolm Tredinnick wrote:
>>
>>> On Sat, 2008-02-23 at 16:02 -0600, Michael Hipp
wrote:
>>>> Where in my Django code files can I set the
current working directory
>>>> (so that it applies to all my code)?
>>>> I'm trying to make sure that all paths in
my Python code are relative
>>>> paths. But I think I need to know where I
can put the cwd change so that
>>>> it runs when Django first comes up.
>>> No, you don't. What you want to do is set the
Python path variable in
>>> your environment. Have a look at Django's
documentation on mod_python
>>> setup to see how to set that environment
variable. That's the standard
>>> way to do this.
>> I think we're talking about two different things. I
have the PythonPath
>> variable set in my httpd.conf file. No problem with
imports.
>>
>> I wasn't speaking of imports.
>>
>> But I have lots of "data" files that live
in and around my Django code
>> and I have to access with them with stuff like:
>>
>>     f = open("somedir/myfile.dat", 'r')
>>
>> So how do I make those lines look like that instead
of having a bunch of
>>   absolute paths stuck in there or lots of messy
stuff with
>> os.path.join(os.path.dirname(__file__)...) in it?
> 
> Don't. You should never ever write a web application
such that it will
> only work if the current working directory is a
specific directory, it
> is just very bad practice to do so.
> 
> This is because in hosting systems like Apache there is
absolutely no
> guarantee that the working directory will be something
in particular
> and you can't even change it to be a specific value and
expect it to
> work reliably. This is because in any sort of system
where the process
> is shared by other code you didn't write or which is
outside of your
> control, you can't prevent that other code also wanting
to change the
> working directory and subsequently screwing up your
code.
> 
> Python web frameworks or applications which have to one
degree or
> another made a choice to somehow rely on the current
working directory
> being a specific value are limiting the deployment
choices for their
> users by doing so. You are thus highly discouraged
against doing it
> and using __file__ as an anchor or a variable setting
in main settings
> configuration file is a better and more portable way of
doing it.

Ok. Thanks. The idea of putting it in settings.py is
probably the path 
of least litter.

Michael

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Django users" group.
To post to this group, send email to django-usersgooglegroups.com
To unsubscribe from this group, send email to
django-users-unsubscribegooglegroups.com
For more options, visit this group at htt
p://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---


[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )