【问题标题】:How to import module installed in home directory?如何导入安装在主目录中的模块?
【发布时间】:2019-06-25 16:54:04
【问题描述】:

我在我的主目录中安装了 Python3.4.3,因此它位于 /home/jdoe/.local/bin/python3 下,并且我通过执行 pip install --user package_name 为它安装了一些外部模块。但是,现在在编写我的 python 脚本时,找不到 python 查找的包,因为它正在 usr/lib 中查找,但该包不存在。如何导入模块,以便 python 查看安装在我的个人主目录中的站点包?

【问题讨论】:

    标签: python unix module package pip


    【解决方案1】:

    将路径附加到路径变量

    import sys
    sys.path.append("<path>")
    

    但是你确定你的pip install --user确实安装了一个python3.4包,通常不需要为pip安装包的路径添加任何路径吗?

    pip --version的输出是什么

    【讨论】:

    • 好吧,我特别安装了/home/jdoe/.local/bin/python3.4 -m pip install --user package_name
    【解决方案2】:

    假设我有一个属于$HOME/repo/code/sample.py 的脚本,我想将它导入$HOME/repo2/code/sample.py 一种方法是:

    import os 
    import sys 
    env=os.path.expanduser(os.path.expandvars($HOME/repo) # "source" directory with python script
    sys.path.insert(0, env)
    import code.sample 
    

    这将删除对export PYTHONPATH 的依赖,并允许您在文件/文件夹之间轻松导入,就像它们是任何其他模块一样。

    【讨论】:

      【解决方案3】:

      this tutorial 中所述,基本上有两种选择:使用PYTHONPATHsys.append

      PYTHONPATH 是一个环境变量,用于扩展 Python 搜索模块的目录。可以在运行python之前在命令行中设置:

      $ export PYTHONPATH=$PYTHONPATH:<Path to Module>
      $ python
      

      或者在 bash 配置文件中添加export PYTHONPATH=$PYTHONPATH:&lt;Path to Module&gt; 行(即.bashrc)。如果设置在.bashrc中,那么计算机中执行的所有python脚本都会在那里搜索模块。

      sys.append 在 Python 中被调用。它可以添加到调用模块的文件的开头,或者从 Python 解释器调用,使用以下行:

      import sys
      sys.path.append('<Path to Module>')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-10
        • 1970-01-01
        • 2019-08-25
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 2018-01-21
        相关资源
        最近更新 更多