Re: Django Python OSError No such file or directory but file exists

2017-08-07 Thread Ronaldo Bahia
thanks a lot:

p = subprocess.Popen(('someprog.exe', str(i))
  p.wait()


*Ronaldo Bahia*
+55 11 3280 6971
+55 11 963 622 581

*Materiais gratuitos para o RH:*
- ROI - Melhorando Indicadores no RH

- Manual do Recrutador Moderno


2017-08-07 18:41 GMT-03:00 François Schiettecatte 
:

> See:
>
> https://stackoverflow.com/questions/8953119/python-
> waiting-for-external-launched-process-finish
>
> François
>
> > On Aug 7, 2017, at 2:35 PM, Ronaldo Bahia  wrote:
> >
> > How can I do that?
> >
> > Ronaldo Bahia
> > +55 11 3280 6971
> > +55 11 963 622 581
> >
> > Materiais gratuitos para o RH:
> > - ROI - Melhorando Indicadores no RH
> > - Manual do Recrutador Moderno
> >
> > 2017-08-07 18:32 GMT-03:00 "Александр Христюхин (roboslone)" <
> robosl...@gmail.com>:
> > You can wait for subprocess to finish and not rely on time.sleep.
> >
> >> On 7 Aug 2017, at 23:57, Ronaldo Bahia  wrote:
> >>
> >> Turns out unoconv takes 2 seconds to perform the file conversion.
> >> So after the file conversion, I had to set time.sleep(3) before upload
> a file to S3.
> >>
> >> And after 1 week I got this working using variables.
> >>
> >> Thanks
> >>
> >> Ronaldo Bahia
> >> +55 11 3280 6971
> >> +55 11 963 622 581
> >>
> >> Materiais gratuitos para o RH:
> >> - ROI - Melhorando Indicadores no RH
> >> - Manual do Recrutador Moderno
> >>
> >> 2017-08-07 17:17 GMT-03:00 Ronaldo Bahia :
> >> I don't know why but if I set the string ("cv.pdf"), it process just
> fine.
> >> If I use a variable instead, it doesn't.
> >>
> >> Here is the working code:
> >>
> >> # convert to PDF
> >> env = os.environ.copy()
> >> env['HOME'] = '/tmp'
> >> subprocess.Popen(["unoconv","-f", "pdf", "-o", "cv.pdf","%s" %
> (file_in)], env = env)
> >>
> >> # Define S3 path
> >> resume_path = 'resumes/%s/' % str(date.today())
> >>
> >> # key is the S3 file name
> >> key = '%s%s' % (resume_path, file_out)
> >>
> >> # delete local file
> >> subprocess.call("rm -f %s" % user_cv_file, shell=True)
> >>
> >> # update the new file format
> >> user_cv.resume = key
> >> user_cv.save()
> >>
> >> # S3 Connection
> >> conn = S3Connection(settings.AWS_ACCESS_KEY_ID,
> settings.AWS_SECRET_ACCESS_KEY)
> >> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
> >> k_out = Key(bucket=bucket_out, name=user_cv.resume)
> >>
> >> # Upload to S3
> >> k_out.set_contents_from_filename('cv.pdf')
> >> k_out.make_public()
> >>
> >> # deleta o arquivo localmente
> >> subprocess.call("rm -f cv.pdf", shell=True)
> >>
> >> Ronaldo Bahia
> >> +55 11 3280 6971
> >> +55 11 963 622 581
> >>
> >> Materiais gratuitos para o RH:
> >> - ROI - Melhorando Indicadores no RH
> >> - Manual do Recrutador Moderno
> >>
> >> 2017-08-07 8:16 GMT-03:00 "Александр Христюхин (roboslone)" <
> robosl...@gmail.com>:
> >> Well, yeah, you're using local path basically. And you should NEVER use
> .split('/')[-1] to determine file basename, take a look at os.path module
> instead.
> >>
> >> But that's not the point. You should try to use absolute path, I
> believe it would do the trick.
> >>
> >>> On 4 Aug 2017, at 17:49, Ronaldo Bahia  wrote:
> >>>
> >>> the method is called in a def post() within a class view:
> >>>
> >>> user_cv = CandidateCV.objects.get(user=request.user)
> >>> user_cv_file = str(user_cv.resume).split('/')[-1]
> >>> s3upload(user_cv_file)
> >>>
> >>> The file is converted from doc to pdf in server project folder, where
> manage.py is.
> >>> So probably there is no absolute path.
> >>>
> >>> How can I solve it?
> >>>
> >>> Thanks
> >>> Ronaldo Bahia
> >>> +55 11 3280 6971
> >>> +55 11 963 622 581
> >>>
> >>> Materiais gratuitos para o RH:
> >>> - ROI - Melhorando Indicadores no RH
> >>> - Manual do Recrutador Moderno
> >>>
> >>> 2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" <
> robosl...@gmail.com>:
> >>> Hi,
> >>>
> >>> Are you sure s3file contains absolute path? I can't see where s3upload
> is being called.
> >>>
> >>> Also, you might wanna use os.remove instead of calling subprocess.
> >>> You also might wanna check out PEP-8 and Sphinx for your docstrings.
> >>>
>  On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
> 
>  Hi everyone, can you help me?
>  Thanks in advance
> 
>  Thread: https://stackoverflow.com/questions/45449102/django-
> python-oserror-no-such-file-or-directory-but-file-exists
> 
>  Code:
> 
> 
> 
>  down vote
>  favorite
>  I'm converting doc and docx files to pdf in the server using unoconv
> with 

Re: Django Python OSError No such file or directory but file exists

2017-08-07 Thread François Schiettecatte
See:


https://stackoverflow.com/questions/8953119/python-waiting-for-external-launched-process-finish

François

> On Aug 7, 2017, at 2:35 PM, Ronaldo Bahia  wrote:
> 
> How can I do that?
> 
> Ronaldo Bahia
> +55 11 3280 6971
> +55 11 963 622 581
> 
> Materiais gratuitos para o RH:
> - ROI - Melhorando Indicadores no RH
> - Manual do Recrutador Moderno
> 
> 2017-08-07 18:32 GMT-03:00 "Александр Христюхин (roboslone)" 
> :
> You can wait for subprocess to finish and not rely on time.sleep.
> 
>> On 7 Aug 2017, at 23:57, Ronaldo Bahia  wrote:
>> 
>> Turns out unoconv takes 2 seconds to perform the file conversion.
>> So after the file conversion, I had to set time.sleep(3) before upload a 
>> file to S3.
>> 
>> And after 1 week I got this working using variables.
>> 
>> Thanks
>> 
>> Ronaldo Bahia
>> +55 11 3280 6971
>> +55 11 963 622 581
>> 
>> Materiais gratuitos para o RH:
>> - ROI - Melhorando Indicadores no RH
>> - Manual do Recrutador Moderno
>> 
>> 2017-08-07 17:17 GMT-03:00 Ronaldo Bahia :
>> I don't know why but if I set the string ("cv.pdf"), it process just fine.
>> If I use a variable instead, it doesn't.
>> 
>> Here is the working code:
>> 
>> # convert to PDF
>> env = os.environ.copy()
>> env['HOME'] = '/tmp'
>> subprocess.Popen(["unoconv","-f", "pdf", "-o", "cv.pdf","%s" % 
>> (file_in)], env = env)
>> 
>> # Define S3 path
>> resume_path = 'resumes/%s/' % str(date.today())
>> 
>> # key is the S3 file name
>> key = '%s%s' % (resume_path, file_out)
>> 
>> # delete local file
>> subprocess.call("rm -f %s" % user_cv_file, shell=True)
>> 
>> # update the new file format
>> user_cv.resume = key
>> user_cv.save()
>> 
>> # S3 Connection
>> conn = S3Connection(settings.AWS_ACCESS_KEY_ID, 
>> settings.AWS_SECRET_ACCESS_KEY)
>> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
>> k_out = Key(bucket=bucket_out, name=user_cv.resume)
>> 
>> # Upload to S3
>> k_out.set_contents_from_filename('cv.pdf')
>> k_out.make_public()
>> 
>> # deleta o arquivo localmente
>> subprocess.call("rm -f cv.pdf", shell=True)
>> 
>> Ronaldo Bahia
>> +55 11 3280 6971
>> +55 11 963 622 581
>> 
>> Materiais gratuitos para o RH:
>> - ROI - Melhorando Indicadores no RH
>> - Manual do Recrutador Moderno
>> 
>> 2017-08-07 8:16 GMT-03:00 "Александр Христюхин (roboslone)" 
>> :
>> Well, yeah, you're using local path basically. And you should NEVER use 
>> .split('/')[-1] to determine file basename, take a look at os.path module 
>> instead.
>> 
>> But that's not the point. You should try to use absolute path, I believe it 
>> would do the trick.
>> 
>>> On 4 Aug 2017, at 17:49, Ronaldo Bahia  wrote:
>>> 
>>> the method is called in a def post() within a class view:
>>> 
>>> user_cv = CandidateCV.objects.get(user=request.user)
>>> user_cv_file = str(user_cv.resume).split('/')[-1]
>>> s3upload(user_cv_file)
>>> 
>>> The file is converted from doc to pdf in server project folder, where 
>>> manage.py is.
>>> So probably there is no absolute path.
>>> 
>>> How can I solve it?
>>> 
>>> Thanks
>>> Ronaldo Bahia
>>> +55 11 3280 6971
>>> +55 11 963 622 581
>>> 
>>> Materiais gratuitos para o RH:
>>> - ROI - Melhorando Indicadores no RH
>>> - Manual do Recrutador Moderno
>>> 
>>> 2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" 
>>> :
>>> Hi,
>>> 
>>> Are you sure s3file contains absolute path? I can't see where s3upload is 
>>> being called.
>>> 
>>> Also, you might wanna use os.remove instead of calling subprocess.
>>> You also might wanna check out PEP-8 and Sphinx for your docstrings.
>>> 
 On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
 
 Hi everyone, can you help me?
 Thanks in advance
 
 Thread: 
 https://stackoverflow.com/questions/45449102/django-python-oserror-no-such-file-or-directory-but-file-exists
 
 Code:
 
 
 
 down vote
 favorite
 I'm converting doc and docx files to pdf in the server using unoconv with 
 LibreOffice. And I need to upload to S3 the converted file.
 
 I can convert with success the files and I can see them in the server.
 
 But when I try to upload the pdf, I get the error. What am I missing?
 
 Thanks in advance
 
 This works just fine:
 
 import
  subprocess
 
 from boto.s3.connection import S3Connection, Bucket, Key
 
 
 
 def doc_to_pdf(user):
 
 
 '''
 Convert doc or docx to PDF.
 
 parameter user: is a request.user
 
 Usage:
 doc_to_pdf(self.request.user):
 '''
 
 
 user_cv 
 = 

RE: Django Python OSError No such file or directory but file exists

2017-08-07 Thread Matthew Pava
That’s a great idea.  How do you do that programmatically?

From: django-users@googlegroups.com [mailto:django-users@googlegroups.com] On 
Behalf Of "? ? (roboslone)"
Sent: Monday, August 7, 2017 4:32 PM
To: django-users@googlegroups.com
Subject: Re: Django Python OSError No such file or directory but file exists

You can wait for subprocess to finish and not rely on time.sleep.

On 7 Aug 2017, at 23:57, Ronaldo Bahia 
> wrote:

Turns out unoconv takes 2 seconds to perform the file conversion.
So after the file conversion, I had to set time.sleep(3) before upload a file 
to S3.

And after 1 week I got this working using variables.

Thanks

Ronaldo Bahia
+55 11 3280 6971
+55 11 963 622 581

Materiais gratuitos para o RH:
- ROI - Melhorando Indicadores no 
RH
- Manual do Recrutador 
Moderno

2017-08-07 17:17 GMT-03:00 Ronaldo Bahia 
>:
I don't know why but if I set the string ("cv.pdf"), it process just fine.
If I use a variable instead, it doesn't.

Here is the working code:

# convert to PDF
env = os.environ.copy()
env['HOME'] = '/tmp'
subprocess.Popen(["unoconv","-f", "pdf", "-o", "cv.pdf","%s" % 
(file_in)], env = env)

# Define S3 path
resume_path = 'resumes/%s/' % str(date.today())

# key is the S3 file name
key = '%s%s' % (resume_path, file_out)

# delete local file
subprocess.call("rm -f %s" % user_cv_file, shell=True)

# update the new file format
user_cv.resume = key
user_cv.save()

# S3 Connection
conn = S3Connection(settings.AWS_ACCESS_KEY_ID, 
settings.AWS_SECRET_ACCESS_KEY)
bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
k_out = Key(bucket=bucket_out, name=user_cv.resume)

# Upload to S3
k_out.set_contents_from_filename('cv.pdf')
k_out.make_public()

# deleta o arquivo localmente
subprocess.call("rm -f cv.pdf", shell=True)

Ronaldo Bahia
+55 11 3280 6971
+55 11 963 622 581

Materiais gratuitos para o RH:
- ROI - Melhorando Indicadores no 
RH
- Manual do Recrutador 
Moderno

2017-08-07 8:16 GMT-03:00 "Александр Христюхин (roboslone)" 
>:
Well, yeah, you're using local path basically. And you should NEVER use 
.split('/')[-1] to determine file basename, take a look at os.path module 
instead.

But that's not the point. You should try to use absolute path, I believe it 
would do the trick.

On 4 Aug 2017, at 17:49, Ronaldo Bahia 
> wrote:

the method is called in a def post() within a class view:

user_cv = CandidateCV.objects.get(user=request.user)
user_cv_file = str(user_cv.resume).split('/')[-1]
s3upload(user_cv_file)

The file is converted from doc to pdf in server project folder, where manage.py 
is.
So probably there is no absolute path.

How can I solve it?


Thanks
Ronaldo Bahia
+55 11 3280 6971
+55 11 963 622 581

Materiais gratuitos para o RH:
- ROI - Melhorando Indicadores no 
RH
- Manual do Recrutador 
Moderno

2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" 
>:
Hi,

Are you sure s3file contains absolute path? I can't see where s3upload is being 
called.

Also, you might wanna use os.remove instead of calling subprocess.
You also might wanna check out PEP-8 and Sphinx for your docstrings.

On 2 Aug 2017, at 02:28, Ronaldo Bahia 
> wrote:

Hi everyone, can you help me?
Thanks in advance

Thread: 
https://stackoverflow.com/questions/45449102/django-python-oserror-no-such-file-or-directory-but-file-exists

Code:



down 
votefavorite

I'm converting doc and docx files to pdf in the server using unoconv with 
LibreOffice. And I need to upload to S3 the converted file.
I can convert with success the files and I can see them in the server.
But when I try to upload the pdf, I get the error. What am I missing?
Thanks in advance
This works just fine:

import subprocess

from boto.s3.connection import S3Connection, Bucket, Key



def doc_to_pdf(user):

'''

Convert doc or 

Re: Django Python OSError No such file or directory but file exists

2017-08-07 Thread Ronaldo Bahia
Turns out unoconv takes 2 seconds to perform the file conversion.
So after the file conversion, I had to set time.sleep(3) before upload a
file to S3.

And after 1 week I got this working using variables.

Thanks

*Ronaldo Bahia*
+55 11 3280 6971
+55 11 963 622 581

*Materiais gratuitos para o RH:*
- ROI - Melhorando Indicadores no RH

- Manual do Recrutador Moderno


2017-08-07 17:17 GMT-03:00 Ronaldo Bahia :

> I don't know why but if I set the string ("cv.pdf"), it process just fine.
> If I use a variable instead, it doesn't.
>
> Here is the working code:
>
> # convert to PDF
> env = os.environ.copy()
> env['HOME'] = '/tmp'
> subprocess.Popen(["unoconv","-f", "pdf", "-o", "cv.pdf","%s" %
> (file_in)], env = env)
>
> # Define S3 path
> resume_path = 'resumes/%s/' % str(date.today())
>
> # key is the S3 file name
> key = '%s%s' % (resume_path, file_out)
>
> # delete local file
> subprocess.call("rm -f %s" % user_cv_file, shell=True)
>
> # update the new file format
> user_cv.resume = key
> user_cv.save()
>
> # S3 Connection
> conn = S3Connection(settings.AWS_ACCESS_KEY_ID,
> settings.AWS_SECRET_ACCESS_KEY)
> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
> k_out = Key(bucket=bucket_out, name=user_cv.resume)
>
> # Upload to S3
> k_out.set_contents_from_filename('cv.pdf')
> k_out.make_public()
>
> # deleta o arquivo localmente
> subprocess.call("rm -f cv.pdf", shell=True)
>
> *Ronaldo Bahia*
> +55 11 3280 6971 <(11)%203280-6971>
> +55 11 963 622 581
>
> *Materiais gratuitos para o RH:*
> - ROI - Melhorando Indicadores no RH
> 
> - Manual do Recrutador Moderno
> 
>
> 2017-08-07 8:16 GMT-03:00 "Александр Христюхин (roboslone)" <
> robosl...@gmail.com>:
>
>> Well, yeah, you're using local path basically. And you should NEVER use
>> .split('/')[-1] to determine file basename, take a look at os.path module
>> instead.
>>
>> But that's not the point. You should try to use absolute path, I believe
>> it would do the trick.
>>
>> On 4 Aug 2017, at 17:49, Ronaldo Bahia  wrote:
>>
>> the method is called in a def post() within a class view:
>>
>> user_cv = CandidateCV.objects.get(user=request.user)
>> user_cv_file = str(user_cv.resume).split('/')[-1]
>> s3upload(user_cv_file)
>>
>> The file is converted from doc to pdf in server project folder, where
>> manage.py is.
>> So probably there is no absolute path.
>>
>> How can I solve it?
>>
>>
>> Thanks
>> *Ronaldo Bahia*
>> +55 11 3280 6971 <(11)%203280-6971>
>> +55 11 963 622 581
>>
>> *Materiais gratuitos para o RH:*
>> - ROI - Melhorando Indicadores no RH
>> 
>> - Manual do Recrutador Moderno
>> 
>>
>> 2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" <
>> robosl...@gmail.com>:
>>
>>> Hi,
>>>
>>> Are you sure s3file contains absolute path? I can't see where s3upload
>>> is being called.
>>>
>>> Also, you might wanna use os.remove instead of calling subprocess.
>>> You also might wanna check out PEP-8 and Sphinx for your docstrings.
>>>
>>> On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
>>>
>>> Hi everyone, can you help me?
>>> Thanks in advance
>>>
>>> Thread: https://stackoverflow.com/questions/45449102/django-
>>> python-oserror-no-such-file-or-directory-but-file-exists
>>>
>>> Code:
>>>
>>>
>>>
>>> down votefavorite
>>> 
>>>
>>> I'm converting doc and docx files to pdf in the server using unoconv
>>> with LibreOffice. And I need to upload to S3 the converted file.
>>>
>>> I can convert with success the files and I can see them in the server.
>>>
>>> But when I try to upload the pdf, I get the error. What am I missing?
>>>
>>> Thanks in advance
>>>
>>> This works just fine:
>>>
>>> import subprocessfrom boto.s3.connection import S3Connection, Bucket, Key
>>> def doc_to_pdf(user):
>>> '''
>>> Convert doc or docx to PDF.
>>>
>>> parameter user: is a request.user
>>>
>>> Usage:
>>> doc_to_pdf(self.request.user):
>>> '''
>>>
>>> user_cv = CandidateCV.objects.get(user=user)
>>> user_cv_file = str(user_cv.resume).split('/')[-1] # tem que ser PDF
>>> user_cv_filetype = user_cv_file.split('.')[-1]
>>>
>>> 

Re: Django Python OSError No such file or directory but file exists

2017-08-07 Thread Ronaldo Bahia
I don't know why but if I set the string ("cv.pdf"), it process just fine.
If I use a variable instead, it doesn't.

Here is the working code:

# convert to PDF
env = os.environ.copy()
env['HOME'] = '/tmp'
subprocess.Popen(["unoconv","-f", "pdf", "-o", "cv.pdf","%s" %
(file_in)], env = env)

# Define S3 path
resume_path = 'resumes/%s/' % str(date.today())

# key is the S3 file name
key = '%s%s' % (resume_path, file_out)

# delete local file
subprocess.call("rm -f %s" % user_cv_file, shell=True)

# update the new file format
user_cv.resume = key
user_cv.save()

# S3 Connection
conn = S3Connection(settings.AWS_ACCESS_KEY_ID,
settings.AWS_SECRET_ACCESS_KEY)
bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
k_out = Key(bucket=bucket_out, name=user_cv.resume)

# Upload to S3
k_out.set_contents_from_filename('cv.pdf')
k_out.make_public()

# deleta o arquivo localmente
subprocess.call("rm -f cv.pdf", shell=True)

*Ronaldo Bahia*
+55 11 3280 6971
+55 11 963 622 581

*Materiais gratuitos para o RH:*
- ROI - Melhorando Indicadores no RH

- Manual do Recrutador Moderno


2017-08-07 8:16 GMT-03:00 "Александр Христюхин (roboslone)" <
robosl...@gmail.com>:

> Well, yeah, you're using local path basically. And you should NEVER use
> .split('/')[-1] to determine file basename, take a look at os.path module
> instead.
>
> But that's not the point. You should try to use absolute path, I believe
> it would do the trick.
>
> On 4 Aug 2017, at 17:49, Ronaldo Bahia  wrote:
>
> the method is called in a def post() within a class view:
>
> user_cv = CandidateCV.objects.get(user=request.user)
> user_cv_file = str(user_cv.resume).split('/')[-1]
> s3upload(user_cv_file)
>
> The file is converted from doc to pdf in server project folder, where
> manage.py is.
> So probably there is no absolute path.
>
> How can I solve it?
>
>
> Thanks
> *Ronaldo Bahia*
> +55 11 3280 6971 <(11)%203280-6971>
> +55 11 963 622 581
>
> *Materiais gratuitos para o RH:*
> - ROI - Melhorando Indicadores no RH
> 
> - Manual do Recrutador Moderno
> 
>
> 2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" <
> robosl...@gmail.com>:
>
>> Hi,
>>
>> Are you sure s3file contains absolute path? I can't see where s3upload is
>> being called.
>>
>> Also, you might wanna use os.remove instead of calling subprocess.
>> You also might wanna check out PEP-8 and Sphinx for your docstrings.
>>
>> On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
>>
>> Hi everyone, can you help me?
>> Thanks in advance
>>
>> Thread: https://stackoverflow.com/questions/45449102/django-
>> python-oserror-no-such-file-or-directory-but-file-exists
>>
>> Code:
>>
>>
>>
>> down votefavorite
>> 
>>
>> I'm converting doc and docx files to pdf in the server using unoconv with
>> LibreOffice. And I need to upload to S3 the converted file.
>>
>> I can convert with success the files and I can see them in the server.
>>
>> But when I try to upload the pdf, I get the error. What am I missing?
>>
>> Thanks in advance
>>
>> This works just fine:
>>
>> import subprocessfrom boto.s3.connection import S3Connection, Bucket, Key
>> def doc_to_pdf(user):
>> '''
>> Convert doc or docx to PDF.
>>
>> parameter user: is a request.user
>>
>> Usage:
>> doc_to_pdf(self.request.user):
>> '''
>>
>> user_cv = CandidateCV.objects.get(user=user)
>> user_cv_file = str(user_cv.resume).split('/')[-1] # tem que ser PDF
>> user_cv_filetype = user_cv_file.split('.')[-1]
>>
>> if not user_cv_filetype in settings.PDF_FILE_TYPE:
>> # Se não for PDF
>> file_in = user_cv.resume.url
>> file_name = file_in.split('/')[-1]
>> # download
>> urllib.request.urlretrieve(file_in, file_name)
>> file_out = user_cv_file.split('.')[0] + '.pdf'
>>
>> # converte para PDF
>> env = os.environ.copy()
>> env['HOME'] = '/tmp'
>> subprocess.Popen(["unoconv","-f", "pdf", "%s" % (file_in)], env = 
>> env)
>>
>> # Define a path para salvar o documento na S3
>> resume_path = 'resumes/%s/' % str(date.today())
>>
>> # key é o nome do arquivo na S3
>> key = '%s%s' % (resume_path, file_out)
>>
>> # deleta o arquivo localmente
>> subprocess.call("rm -f %s" % user_cv_file, shell=True)

Re: Django Python OSError No such file or directory but file exists

2017-08-07 Thread Александр Христюхин (roboslone)
Well, yeah, you're using local path basically. And you should NEVER use 
.split('/')[-1] to determine file basename, take a look at os.path module 
instead.

But that's not the point. You should try to use absolute path, I believe it 
would do the trick.

> On 4 Aug 2017, at 17:49, Ronaldo Bahia  wrote:
> 
> the method is called in a def post() within a class view:
> 
> user_cv = CandidateCV.objects.get(user=request.user)
> user_cv_file = str(user_cv.resume).split('/')[-1]
> s3upload(user_cv_file)
> 
> The file is converted from doc to pdf in server project folder, where 
> manage.py is.
> So probably there is no absolute path.
> 
> How can I solve it?
> 
> Thanks
> Ronaldo Bahia
> +55 11 3280 6971
> +55 11 963 622 581
> 
> Materiais gratuitos para o RH:
> - ROI - Melhorando Indicadores no RH 
> 
> - Manual do Recrutador Moderno 
> 
> 2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" 
> >:
> Hi,
> 
> Are you sure s3file contains absolute path? I can't see where s3upload is 
> being called.
> 
> Also, you might wanna use os.remove instead of calling subprocess.
> You also might wanna check out PEP-8 and Sphinx for your docstrings.
> 
>> On 2 Aug 2017, at 02:28, Ronaldo Bahia > > wrote:
>> 
>> Hi everyone, can you help me?
>> Thanks in advance
>> 
>> Thread: 
>> https://stackoverflow.com/questions/45449102/django-python-oserror-no-such-file-or-directory-but-file-exists
>>  
>> 
>> 
>> Code:
>> 
>> 
>> 
>> down vote
>>  <>favorite
>>  
>> 
>>  
>> I'm converting doc and docx files to pdf in the server using unoconv with 
>> LibreOffice. And I need to upload to S3 the converted file.
>> 
>> I can convert with success the files and I can see them in the server.
>> 
>> But when I try to upload the pdf, I get the error. What am I missing?
>> 
>> Thanks in advance
>> 
>> This works just fine:
>> 
>> import subprocess
>> from boto.s3.connection import S3Connection, Bucket, Key
>> 
>> def doc_to_pdf(user):
>> '''
>> Convert doc or docx to PDF.
>> 
>> parameter user: is a request.user
>> 
>> Usage:
>> doc_to_pdf(self.request.user):
>> '''
>> 
>> user_cv = CandidateCV.objects.get(user=user)
>> user_cv_file = str(user_cv.resume).split('/')[-1] # tem que ser PDF
>> user_cv_filetype = user_cv_file.split('.')[-1]
>> 
>> if not user_cv_filetype in settings.PDF_FILE_TYPE:
>> # Se não for PDF
>> file_in = user_cv.resume.url
>> file_name = file_in.split('/')[-1]
>> # download
>> urllib.request.urlretrieve(file_in, file_name)
>> file_out = user_cv_file.split('.')[0] + '.pdf'
>> 
>> # converte para PDF
>> env = os.environ.copy()
>> env['HOME'] = '/tmp'
>> subprocess.Popen(["unoconv","-f", "pdf", "%s" % (file_in)], env = 
>> env)
>> 
>> # Define a path para salvar o documento na S3
>> resume_path = 'resumes/%s/' % str(date.today())
>> 
>> # key é o nome do arquivo na S3
>> key = '%s%s' % (resume_path, file_out)
>> 
>> # deleta o arquivo localmente
>> subprocess.call("rm -f %s" % user_cv_file, shell=True)
>> 
>> # Salva o novo formato no banco
>> user_cv.resume = key
>> user_cv.save()
>> This is the code in which I get the error in line: 
>> k_out.set_contents_from_filename(s3file)
>> 
>> def s3upload(s3file):
>> 
>> # Conecta na AWS S3
>> conn = S3Connection(settings.AWS_ACCESS_KEY_ID, 
>> settings.AWS_SECRET_ACCESS_KEY)
>> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
>> k_out = Key(bucket=bucket_out, name=s3file)
>> 
>> # Define a path para salvar o documento na S3
>> resume_path = 'resumes/%s/' % str(date.today())
>> 
>> # key é o nome do arquivo na S3
>> key = '%s%s' % (resume_path, s3file)
>> k_out.key = key
>> 
>> # Salva na AWS S3
>> k_out.set_contents_from_filename(s3file)
>> k_out.make_public()
>> 
>> # deleta o arquivo localmente
>> subprocess.call("rm -f %s" % s3file, shell=True)
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to django-users+unsubscr...@googlegroups.com 
>> .
>> To post to this group, send email to django-users@googlegroups.com 
>> .
>> Visit this group at 

Re: Django Python OSError No such file or directory but file exists

2017-08-04 Thread Ronaldo Bahia
the method is called in a def post() within a class view:

user_cv = CandidateCV.objects.get(user=request.user)
user_cv_file = str(user_cv.resume).split('/')[-1]
s3upload(user_cv_file)

The file is converted from doc to pdf in server project folder, where
manage.py is.
So probably there is no absolute path.

How can I solve it?


Thanks
*Ronaldo Bahia*
+55 11 3280 6971
+55 11 963 622 581

*Materiais gratuitos para o RH:*
- ROI - Melhorando Indicadores no RH

- Manual do Recrutador Moderno


2017-08-03 1:36 GMT-03:00 "Александр Христюхин (roboslone)" <
robosl...@gmail.com>:

> Hi,
>
> Are you sure s3file contains absolute path? I can't see where s3upload is
> being called.
>
> Also, you might wanna use os.remove instead of calling subprocess.
> You also might wanna check out PEP-8 and Sphinx for your docstrings.
>
> On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
>
> Hi everyone, can you help me?
> Thanks in advance
>
> Thread: https://stackoverflow.com/questions/45449102/django-
> python-oserror-no-such-file-or-directory-but-file-exists
>
> Code:
>
>
>
> down votefavorite
> 
>
> I'm converting doc and docx files to pdf in the server using unoconv with
> LibreOffice. And I need to upload to S3 the converted file.
>
> I can convert with success the files and I can see them in the server.
>
> But when I try to upload the pdf, I get the error. What am I missing?
>
> Thanks in advance
>
> This works just fine:
>
> import subprocessfrom boto.s3.connection import S3Connection, Bucket, Key
> def doc_to_pdf(user):
> '''
> Convert doc or docx to PDF.
>
> parameter user: is a request.user
>
> Usage:
> doc_to_pdf(self.request.user):
> '''
>
> user_cv = CandidateCV.objects.get(user=user)
> user_cv_file = str(user_cv.resume).split('/')[-1] # tem que ser PDF
> user_cv_filetype = user_cv_file.split('.')[-1]
>
> if not user_cv_filetype in settings.PDF_FILE_TYPE:
> # Se não for PDF
> file_in = user_cv.resume.url
> file_name = file_in.split('/')[-1]
> # download
> urllib.request.urlretrieve(file_in, file_name)
> file_out = user_cv_file.split('.')[0] + '.pdf'
>
> # converte para PDF
> env = os.environ.copy()
> env['HOME'] = '/tmp'
> subprocess.Popen(["unoconv","-f", "pdf", "%s" % (file_in)], env = env)
>
> # Define a path para salvar o documento na S3
> resume_path = 'resumes/%s/' % str(date.today())
>
> # key é o nome do arquivo na S3
> key = '%s%s' % (resume_path, file_out)
>
> # deleta o arquivo localmente
> subprocess.call("rm -f %s" % user_cv_file, shell=True)
>
> # Salva o novo formato no banco
> user_cv.resume = key
> user_cv.save()
>
> This is the code in which I get the error in line:
> k_out.set_contents_from_filename(s3file)
>
> def s3upload(s3file):
>
> # Conecta na AWS S3
> conn = S3Connection(settings.AWS_ACCESS_KEY_ID, 
> settings.AWS_SECRET_ACCESS_KEY)
> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
> k_out = Key(bucket=bucket_out, name=s3file)
>
> # Define a path para salvar o documento na S3
> resume_path = 'resumes/%s/' % str(date.today())
>
> # key é o nome do arquivo na S3
> key = '%s%s' % (resume_path, s3file)
> k_out.key = key
>
> # Salva na AWS S3
> k_out.set_contents_from_filename(s3file)
> k_out.make_public()
>
> # deleta o arquivo localmente
> subprocess.call("rm -f %s" % s3file, shell=True)
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/7cecdcdb-7fcf-4f4a-858a-30801fa9cf9b%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Django users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/django-users/IDKZeRHtxyM/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.

Re: Django Python OSError No such file or directory but file exists

2017-08-02 Thread Александр Христюхин (roboslone)
Hi,

Are you sure s3file contains absolute path? I can't see where s3upload is being 
called.

Also, you might wanna use os.remove instead of calling subprocess.
You also might wanna check out PEP-8 and Sphinx for your docstrings.

> On 2 Aug 2017, at 02:28, Ronaldo Bahia  wrote:
> 
> Hi everyone, can you help me?
> Thanks in advance
> 
> Thread: 
> https://stackoverflow.com/questions/45449102/django-python-oserror-no-such-file-or-directory-but-file-exists
> 
> Code:
> 
> 
> 
> down vote
>  <>favorite
>  
> 
>   
> I'm converting doc and docx files to pdf in the server using unoconv with 
> LibreOffice. And I need to upload to S3 the converted file.
> 
> I can convert with success the files and I can see them in the server.
> 
> But when I try to upload the pdf, I get the error. What am I missing?
> 
> Thanks in advance
> 
> This works just fine:
> 
> import subprocess
> from boto.s3.connection import S3Connection, Bucket, Key
> 
> def doc_to_pdf(user):
> '''
> Convert doc or docx to PDF.
> 
> parameter user: is a request.user
> 
> Usage:
> doc_to_pdf(self.request.user):
> '''
> 
> user_cv = CandidateCV.objects.get(user=user)
> user_cv_file = str(user_cv.resume).split('/')[-1] # tem que ser PDF
> user_cv_filetype = user_cv_file.split('.')[-1]
> 
> if not user_cv_filetype in settings.PDF_FILE_TYPE:
> # Se não for PDF
> file_in = user_cv.resume.url
> file_name = file_in.split('/')[-1]
> # download
> urllib.request.urlretrieve(file_in, file_name)
> file_out = user_cv_file.split('.')[0] + '.pdf'
> 
> # converte para PDF
> env = os.environ.copy()
> env['HOME'] = '/tmp'
> subprocess.Popen(["unoconv","-f", "pdf", "%s" % (file_in)], env = env)
> 
> # Define a path para salvar o documento na S3
> resume_path = 'resumes/%s/' % str(date.today())
> 
> # key é o nome do arquivo na S3
> key = '%s%s' % (resume_path, file_out)
> 
> # deleta o arquivo localmente
> subprocess.call("rm -f %s" % user_cv_file, shell=True)
> 
> # Salva o novo formato no banco
> user_cv.resume = key
> user_cv.save()
> This is the code in which I get the error in line: 
> k_out.set_contents_from_filename(s3file)
> 
> def s3upload(s3file):
> 
> # Conecta na AWS S3
> conn = S3Connection(settings.AWS_ACCESS_KEY_ID, 
> settings.AWS_SECRET_ACCESS_KEY)
> bucket_out = Bucket(conn, settings.AWS_STORAGE_BUCKET_NAME)
> k_out = Key(bucket=bucket_out, name=s3file)
> 
> # Define a path para salvar o documento na S3
> resume_path = 'resumes/%s/' % str(date.today())
> 
> # key é o nome do arquivo na S3
> key = '%s%s' % (resume_path, s3file)
> k_out.key = key
> 
> # Salva na AWS S3
> k_out.set_contents_from_filename(s3file)
> k_out.make_public()
> 
> # deleta o arquivo localmente
> subprocess.call("rm -f %s" % s3file, shell=True)
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to django-users+unsubscr...@googlegroups.com 
> .
> To post to this group, send email to django-users@googlegroups.com 
> .
> Visit this group at https://groups.google.com/group/django-users 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/django-users/7cecdcdb-7fcf-4f4a-858a-30801fa9cf9b%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/6BC03BEF-B4AD-49AB-8A2A-6EDDAD0DB13F%40gmail.com.
For more options, visit https://groups.google.com/d/optout.