2017-09-15 151 views
2

我是python3的新手,我想创建一个可从其他python脚本导入的软件包。将python软件包安装到sys.path

所以我创造了我的包,我跑

python3 setup.py sdist

创建我的压缩包。

当我把它移动到另一个目录来解压,然后用

python3 setup.py install -user --prefix=

它的罚款没有任何错误安装的软件包,它在Python的我的网站,包安装,当我运行python3我可以导入我的库并调用它的函数。

但是,当我想在脚本导入这个包就告诉我

ImportError: No module named test_package.pck1.addition

我知道,我可以添加

import sys 
sys.path.append('./test_package.0.1') 

修复它,但我想避免这种情况,因为它会意味着当试图在另一个脚本中使用它时,总是需要修改程序包的路径。

那么如何在不修改sys.path的情况下导入我的软件包。或者我该如何安装我的软件包,以便我的脚本不需要它。

我尝试了很多安装过程(使用pip3,尝试不同的选项等),没有任何工作,因为我期望它。

+1

您是如何创建软件包的?我想学习它。你能分享一些资源和这个包主题的例子 – babygame0ver

+0

这主要是一个测试,所以它没有什么真正的创意我主要遵循教程,并试图使它自己在这里是我遵循的教程:[链接](https:// python-packaging .readthedocs.io/en/latest/minimal.html) –

+0

雅我需要教程,如果你有任何,然后请与我分享。视频将不胜感激 – babygame0ver

回答

0

您创建了python包“toto.py”。你想要在Python脚本'tata.py'中导入它。您在tata脚本中编写'import toto',并将文件'toto.py'放入PYTHONPATH环境变量中包含的目录中。

虽然我不使用python 2,但在我看来,它是相同的python 2和3.因此,我不知道我明白了这个问题。

+0

是的,我明白,但问题是,我希望它在软件包安装完成,因为如果我把我的软件包给别人我不希望该人员必须将该包放入特定目录中。我不明白的是,当我启动python3时,我可以导入我的包并使用它,但是在一个脚本中,它告诉我可以完成导入,除非添加'sys.path.append('我的包的路径“)' –