콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
3 답글
16376 화면

Imagine yourself in a module's form, as if you were going to update it.

You can see the name, the summary the version... but, for some reason, you need to know where the module physically is. You need to know the actual path to the files.

How can you do that? Should you run a search on every addon folder in the config, looking for a folder with the same name of the module or is there any "secret" way of getting that info?

;)

아바타
취소
베스트 답변

put this in your code: 

import os
path = os.path.join(os.path.dirname(os.path.abspath(__file__)))

wich will return the path of file the code is in... (show it as you find apropriate.. as field value, popup message etc...)

 

hope it helps :)

아바타
취소
베스트 답변
import os
directory = os.path.dirname(__file__)
print('Your directory path:--------', directory)


아바타
취소
작성자 베스트 답변

Thanks Bole but that was pretty much what I was doing and it would only show me the current module. The script had to tell me the path of the module where it was beeing executed from and not where the python file was located.

This is how I eventually did the trick:

        folder_found=False
        addons_path=config['addons_path'].split(',')
        for addons_folder in addons_path:
            readme_path=addons_folder + '\\' + self.name
            
            if os.path.isdir(readme_path):
                folder_found=True
                try:
                    f=open(readme_path +'/README.md',"w")
                    f.write(readme_txt.encode('utf-8'))
                    f.close()
                except:
                    raise osv.except_osv(_('Error!'),_('Unable to write file at ' + readme_path))
                break

        if not folder_found:
            raise osv.except_osv(_('Error!'),_("Unable to find '%s' folder " % self.name))

 

아바타
취소