我应该在哪里放置我自己的python模块,以便可以导入它

Cob*_*bry 68 python python-2.7

我在python中拥有自己的包,而且我经常使用它.什么是最优雅或传统的目录,我应该把我的包,所以它将被导入而不玩PYTHONPATH或sys.path?

那么站点包呢? /usr/lib/python2.7/site-packages.
在python中复制和粘贴包在那里常见吗?

mat*_*ata 50

我通常把我想要准备好的东西放在用户站点目录中:

~/.local/lib/pythonX.X/site-packages
Run Code Online (Sandbox Code Playgroud)

要显示适用于您的平台的正确目录,您可以使用 python -m site --user-site


编辑:sys.path一旦你创建它就会出现:

mkdir -p "`python -m site --user-site`"
Run Code Online (Sandbox Code Playgroud)


ari*_*e64 21

因此,如果您这样的新手和我的目录组织得不是很好,您可能想尝试这种方法.

打开你的python终端.在我的情况下导入一个你知道可以工作的模块,例如numpy,并执行以下操作. Import numpy

numpy.__file__

结果

'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages/numpy/__init__.py'

结果numpy.__file__是你应该把python文件和你的模块放在一起的位置(不包括numpy/__init__.py)所以对我来说就是这样

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages

要做到这一点,只需转到您的终端并输入

mv "location of your module" "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages"

现在您应该可以导入模块了.

  • @Urso您确定要使用两个下划线吗?命令“ re .__ file__”对我有用。 (2认同)

srj*_*srj 5

这是对我有用的东西(我必须经常创建上传到私有pip存储库的python包)。详细阐述@joran对这个问题的评论。

  1. 创建一个“构建目录”,该目录用作创建软件包的工作空间。您选择的任何目录都可以
  2. 将您的python软件包目录复制到此处,然后创建一个setup.py文件。应该有助于正确创建setup.py。
  3. 为您正在处理的项目创建一个virtualenv。virtualenvs还有很多其他好处,我在这里不做详细介绍。
  4. 创建一个本地dist包python setup.py sdist --format=tar。理想情况下,创建的包应位于dist文件夹中。
  5. 将软件包安装在您的virtualenv上(激活后)。 pip install <yourpackage>.tar

你可以使用pip install --force-reinstall,如果你需要玩的库越来越重新创建DIST包。

我发现这种方法非常适合我。如果您不需要打包模块以供其他系统使用,而不仅仅是本地系统,则此方法可能会过大

骇客入侵。