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:
>
> - I printed all the strings used to define paths and files, this all
> seems correct.
>
> - The os.mkdir() command is passed without raising an error, but
> without creating the directory either, this results in an "IOError: No
> such file or directory" because of course a file can't be created in a
> non-existing directory.
>
> - I tried creating files in different already existing directories and
> this works as expected.
>
> - I tried to use os.makedirs() instead of os.mkdir(), this raises an
> interesting error: "mkdir() takes exactly 1 argument (2 given)", I
> tried calling the script outside of Django and this should work the
> way I'm using it:
>
>        kmlpath = "%s/%s" % (basepath, game_id)
>        if not os.path.isdir(kmlpath):
>            os.makedirs(kmlpath)
>
> - I tried creating a file without any directory structure in the path,
> the file is created in the root of the website, if I try creating a
> directory with os.mkdir() it should take the root as well I presume,
> but no directory is created.
>
> It seems that Django 1.2.1 has problems calling the os.mkdir() and
> makedirs() commands ?

I doubt it. You shouldn't really do this:

kmlpath = "%s/%s" % (basepath, game_id)

but do this:

kmlpath = os.path.join(basepath, game_id)

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.

Reply via email to