社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Arount

Arount 最近创建的主题
Arount 最近回复了
6 年前
回复了 Arount 创建的主题 » 从不同层次结构导入python模块

最好使用经典的python模块/包架构。

projectname/
    __init__.py
    __main__.py
    data/
        __init__.py
        generate.py
        tasksets.py

要使用你的应用,请进入 projectname/../ 目录(一级以上 projectname/ 然后运行 python -m projectname . 这将执行 projectname/__main__.py


__main__.py 你会写一些类似的东西:

from projectname.data import generate
from projectname.data import tasksets

if __name__ == '__main__':
    generate.foo()
    tasksets.bar()
  1. 您将使用绝对导入路径(从模块名和点开始, projectname. )
  2. 您将从 if __name__ == '__main__'
  3. P. 将是应用程序/脚本的唯一入口点。

在任何其他文件中,您将使用相同的语法和路径导入其他模块:

data/generate.py :

from projectname.data import tasksets

def foo():
    print('SPAM!')
    tasksets.bar()

一些我不喜欢的事,但我不确定是否有人否认,

在你 projectname/__init__.py 可以写入的文件:

from projectname.data import generate
from projectname.data import tasksets

所以你的两个子模块将被导入你的主作用域 __init__.py ,因此您可以从此作用域导入子模块,如

数据/生成.py :

from projectname import generate

但我还是不喜欢这样做(因为 显式比隐式好。 )


最后但并非最不重要,

  • 你也可以使用 python projectname/__main__.py 命令,但我还是建议 python-m项目名称
  • 您可以创建 setup.py 文件使用 setuptools 在系统上“安装”应用程序并运行 projectname 命令运行它。
6 年前
回复了 Arount 创建的主题 » 使用用户名和密码执行git pull

可以使用

git pull http://ahmeditmna:123456@xxxxx.git

我想你是说 git clone http://ahmeditmna:123456@xxxxx.git


严格来说,是的。 http://username:password@domain/path 是http(s)协议的有效url部分。

但那是安全的还是你应该这么做?不。

首先,最好使用https,如果你是从一个公共存储库推/拉,这不会是一个问题,因为数据已经是公共的,但如果它是一个私人存储库,你的数据可能会被攻击者读取。

但更重要的是,任何有权访问存储库副本的人都可以读取您的凭据。试试看( 我以第一个与python相关的存储库为例。 ):

cd /tmp/
git clone 'https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git'
cd python-examples-from-intro-to-python-course/
git remote -v

git remote -v 列出存储库的远程url,让我们看看:

origin   https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git (fetch)
origin   https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git (push)

如您所见,您的凭证在这里,等待阅读。

如果你在服务器上使用它,那就更糟糕了,因为根据你的一般配置,你可以在日志中找到你的凭据。不要说你可以通过编写脚本来结束这个过程,并将你的凭据放入一个脚本中,你可以提交和/或存储在其他人的服务器上。

这里的要点是没有好的理由这样做,但有很多好的理由不这样做。

不,这样不行。 我建议您花几个小时学习ssh的工作原理和配置您的操作系统。