On 16/08/2010 10:22pm, Doug Blank wrote:
On Mon, Aug 16, 2010 at 7:23 AM, Mark Mooij<markmo...@gmail.com> wrote:
Allright I tried a couple of things with your suggested appraoch:
<snip>
I doubt it. You shouldn't really do this:
kmlpath = "%s/%s" % (basepath, game_id)
I suggested this to avoid having to cast game_id as a string. I'm not
all that knowledgeable about the upcoming Python 3 tsunami but I figure
there will be less hassle if I use the inbuilt string formatting in %s.
At least I hope so!
but do this:
kmlpath = os.path.join(basepath, game_id)
Now I have a question - more Python than Django. os.path.join is very
clever but in Windows we have multiple approaches. One is to simply use
forward slashes and rely on the infrastructure to know what to do and
the other is to be agnostically cross-platform with os.path.sep and
os.path.join. We can also use r'raw\backslashes' and
u'C:\\escaped\\backslashes'
I have come unstuck using all of them at one time or another. I can't
quite put my finger on it at the moment but I have also seen things like
'C:\path\to/some/file.txt' arising from combinations of the approaches
and surprisingly being successful.
So my question is, has anyone written a dissertation on the best
approaches for particular circumstances?
Mike
as different OS's have different path formats. Or perhaps it is the
kml string that you are creating that has other issues (unicode?) I
would print out the mkdirs string to see what you are creating.
HTH,
-Doug
Mark
On 16 aug, 08:32, Mike Dewhirst<mi...@dewhirst.com.au> wrote:
On 16/08/2010 12:57pm, Mike Dewhirst wrote:
On 16/08/2010 1:06am, Mark Mooij wrote:
Hi Mike,
Thanks for your reply. I haven't changed anything else, I am
processing the MS updates, but I don't think this is the problem, as
this all worked fine before the migration to 1.2.1, also if I call the
script directly (outside Django) it works fine.
My view looks like this:
..
import createKML
..
def my_view(request, arg):
...
createKML.createKML(arg)
I don't really know what is happening here that might have changed in
1.2.1 maybe someone else can suggest something.
In the meantime here is suggested approach to discovering the exact
problem ...
import os
...
def createKML(id, basepath="D:/path/to/mysite/templates/maps"):
...
try:
if id:
kmlpath = "%s/%s" % (basepath, str(id))
actually .. kmlpath = "%s/%s" % (basepath, id)
if not os.path.isdir(kmlpath):
os.makedirs(kmlpath)
writefile = "%s/%s" % (kmlpath, str(id))
actually .. writefile = "%s/%s" % (kmlpath, id)
f = open(writefile, 'wb')
else:
raise
except Exception as e:
print("id = %s\nbasepath = %s\n%s" % (id, basepath, e)
...
mike
...
In the createKML.py the problem arises in:
...
import os
...
def createKML(id):
...
os.mkdir("D:/path/to/mysite/templates/maps/"+str(id))
writefile = "D:/path/to/mysite/templates/maps/"+str(id)+"/"+str(id)
+ ".kml"
f = open(writefile, 'wb')
...
I hope this helps?
On 14 aug, 21:55, Mike Dewhirst<mi...@dewhirst.com.au> wrote:
On 15/08/2010 12:10am, Mark Mooij wrote:
Hi all,
I recently migrated from Django 1.1.1 to 1.2.1. In 1.1.1 I had an
application which imports an external python script in which a
directory and some files are created. Since the migrate this doesn't
work anymore, I get a number of IOErrors because the files (and
directory) that should be created can't be found. I've tried changing
my directories and slashes (I'm using Windows), but no success.
Have you changed anything else?
For example, are you processing the Microsoft Windows update patches
which (for WinXP) insert extra permission steps? Have you changed your
OS from XP to Win7?
Can you post the source of the script?
Can't I use the os python functions anymore in Django 1.2.1? In the
documentation I've read about Managing files in models but I prefer to
handle this through my external script.
I hope anybody can help me.
Thanks,
Mark
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.