Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python导入文件_Python - Fatal编程技术网

Python导入文件

Python导入文件,python,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 ex

我正在尝试从不同的目录导入文件,我尝试了一些建议,但没有一个对我有效

特别是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)

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

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

我不确定它打算如何使用,因为它是为Arch Linux软件包设计的,文件将被导出到/usr/bin,您可以尝试使用或。

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


正如FunkySayu在评论中所问的——你在哪里执行你的程序——这是一个至关重要的问题。重要的是,您的模块应该在某个地方进行测试:导入然后使用。这样,您就可以在test main.py中使用sys.path执行任何您想要的操作,特别是sys.path.append。然后,您应该能够以适用于已安装目标包环境的方式导入任何包。

关于导入不带.py扩展名的python文件顺便说一句,我不明白您真正想做什么:您在哪里执行程序?@FunkySayu这将是arch linux包。所以有一个路径,但我不想硬编码。
import package-type.foo.root.usr.bin.foo as foo