Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
16266 Widoki

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?

;)

Awatar
Odrzuć
Najlepsza odpowiedź

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 :)

Awatar
Odrzuć
Najlepsza odpowiedź
import os
directory = os.path.dirname(__file__)
print('Your directory path:--------', directory)


Awatar
Odrzuć
Autor Najlepsza odpowiedź

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))

 

Awatar
Odrzuć