代码之家  ›  专栏  ›  技术社区  ›  Lilás

如何使用setuptools来构建一个可移植的包来修复python代码中的路径?

  •  0
  • Lilás  · 技术社区  · 7 年前

    此库使用setuptools打包。

    问题是代码引用了系统中的其他文件,例如:

    /bin/my-cmd
    /etc/default/my-config.cfg
    

    但根据Linux或BSD发行版的不同,路径不同,例如:

    /usr/local/bin/my-cmd
    /etc/my-config.cfg
    

    %%PREFIX%%/bin/my-cmd
    

    并替换图案 %%PREFIX%%

    谢谢

    2 回复  |  直到 7 年前
        1
  •  0
  •   Arun V Jose    7 年前

    试试这个可能对你有帮助。 __file__

    import os
    
    os.path.join(os.path.dirname(__file__), 'bin/my-cmd')
    
        2
  •  0
  •   Lilás    7 年前

    在我的 __init__.py 我有:

    import platform
    
    if platform.system() == 'FreeBSD':
        PREFIX = '/usr/local'
    else:
        PREFIX = ''
    

    然后,我可以使用以下工具参考文件位置:

    my_cmd_path = PREFIX + '/bin/my-cmd'