Python导入文件

时间:2015-07-20 09:27:37

标签: python

我试图从其他目录导入文件,我尝试了一些建议,但似乎没有一个对我有用。

特别是sys.path.insert(...)对我来说不起作用,因为我不会有文件的常量绝对路径。

我的python文件存在以下结构:

project/packages/package_type/package/package_name/root/usr/bin/

所以我需要导入

project/packages/package_type/foo/root/usr/bin/foo 
(file does not have .py extension, but is a python file)

project/packages/package_type/bar/root/usr/share/bar/modules/foobar/bar.py

包含我需要导入的文件的文件夹有一个空的__init__.py文件 我也试过

import package-type.foo.root.usr.bin.foo as foo

我不确定它打算如何使用,因为它适用于Arch Linux软件包,文件只会导出到/ usr / bin

2 个答案:

答案 0 :(得分:0)

您可以尝试使用pkg_utilssetuptools.find_packages()

答案 1 :(得分:-1)

您需要提供类似于已安装目标Arch Linux /任何软件包的环境功能。也就是说,您的Python包应该可以通过PYTHONPATH访问。这比技术问题更具概念性。

正如FunkySayu在评论中所说 - 你在哪里执行你的计划 - 这是一个至关重要的问题。重要的是,您的模块应该在某个地方进行测试import然后再使用。这样,您就可以在测试中sys.path使用main.py,尤其是sys.path.append()。然后,您应该能够以适用于已安装的目标包环境的方式导入任何包。