我在安装我的 Python 脚本之一时遇到问题。它具有以下结构:
myproject
setup.py
src
myproject
otherfolders
main.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
我setup.py创建了一个这样的入口点:
from setuptools import setup, find_packages
setup(name='mypackage',
version='2.4.0',
author='me',
author_email='...',
package_dir={'':'src'},
packages=find_packages('myproject'),
install_requires=[
"networkx",
"geopy",
"pyyaml"
],
zip_safe=False,
entry_points={
'console_scripts': [
'myproject=myproject.main:main',
],
},
)
Run Code Online (Sandbox Code Playgroud)
现在,使用 成功安装后sudo python setup.py install,我运行mypackage并收到导入错误:No module named mypackage.main。
我知道有很多类似的问题,我尝试了这里建议的大多数/所有解决方案,例如检查__init__.py和设置PYTHONPATH,但问题仍然存在。我在两台不同的 Ubuntu 16.04 机器上运行它。
我很确定这以前有效,但即使我回到较早的提交,它现在也不起作用。
我注意到安装可以使用,develop但仍然无法使用install. 这对任何人都有意义吗?
我使用PyCharm 2016.2来编写我的Python程序.我的一些在线评论看起来有点过分:
code # comment
code # comment
more code # comment
Run Code Online (Sandbox Code Playgroud)
有没有办法让PyCharm自动对齐垂直线上的部分或文件中的所有内嵌注释.所以它看起来像这样:
code # comment
code # comment
more code # comment
Run Code Online (Sandbox Code Playgroud)
与此相关:我尝试手动完成,但PyCharm有时会混淆我的注释缩进,例如复制代码时.我怎么能改变呢?
我最近创建了第二个GitHub帐户,分别是我的工作和我的私人项目(之前,我只有工作帐户).我将https与Windows凭据存储结合使用.要自动选择正确的帐户,我会按照此处的建议存储我的私人帐户信息~/.gitconfig和工作帐户信息.~/work/.gitconfig
不幸的是,当我尝试在我的私有存储库中推送更改时,我收到以下错误:
$ git push
remote: Permission to privateuser/privaterepo.git denied to workuser.
fatal: unable to access 'https://privateuser@github.com/privateuser/privaterepo.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)
我将远程URL设置为git remote set-url origin https://privateuser@github.com/privateuser/privaterepo.git类似于此处的建议.推进我的工作回购仍然工作正常.当我输入git config user.name我的私人/工作回购时,我分别得到我的私人/工作用户名 - 应该是这样.
新的私有存储库有什么问题?为什么git仍然认为我是workuser,当我试图推送到我的私人回购?它是否必须对Windows Credential存储执行某些操作,我用它来存储我的工作凭据?它从未要求我私人帐户的密码......
我有一台配备 Apple M1 芯片组的新 MacBook。要安装tensorflow,我按照此处的说明进行操作,即安装tensorflow-metalandtensorflow-macos而不是普通的tensorflow软件包。
虽然这工作正常,但这意味着我无法运行典型的,pip install -r requirements.txt只要我们tensorflow在requirements.txt. 如果我们改为包含tensorflow-macos,则会给非 M1 甚至非 macOS 用户带来问题。
我们的库必须在所有平台上运行。是否有一个通用安装命令可以根据计算机是否是 M1 Mac 来安装正确的 TensorFlow 版本?这样我们就可以为requirements.txt每个人使用一个单一的?
或者,如果这是不可能的,我们可以传递一些标志/选项,例如pip install -r requirements.txt --m1安装一些变体吗?这里最简单、最优雅的解决方案是什么?
我在 Java 项目的一个类中使用了 ArrayList。该类跟踪列表是否已更改,并提供公共方法来添加和删除列表中的元素,自动将变量设置为“已更改”。
到目前为止,该列表是公开的,因为我希望我的列表可以在任何地方公开阅读。但我只希望拥有该列表的类能够修改它。所以没有来自外部类的修改。那可能吗?如果是这样,怎么办?
通常对于访问控制,您可能会使用 getter 和 setter 方法。但即使使用 getter 方法并将列表设置为私有,另一个类仍然可以这样做getList().remove(element),从而从外部修改列表,而该类不会注意到列表已更改。
我是 Nginx 的新手,我在 Docker 容器中运行它来为一个简单的网站提供服务。我想添加一个/health端点,它只返回状态 200 + 一些任意内容。
我复制并调整了标准nginx.conf,从/etc/nginx/通过增加
server {
location /health {
return 200 "alive";
}
}
Run Code Online (Sandbox Code Playgroud)
在http块内的底部。但是当我运行 Docker 并尝试访问时localhost/health,我只得到no such file or directory. 访问网站localhost工作正常。
我还尝试复制其他代码块,例如,这个:https : //gist.github.com/dhrrgn/8650077
但后来我得到conflicting server name "" on 0.0.0.0:80, ignored nginx: [warn] conflicting server name "" on 0.0.0.0:80, ignored.
我是不是把它location放在了里面的错误位置nginx.conf?我需要一些特殊的服务器配置吗?有什么问题?
我正在使用Omnet ++和Veins进行模拟,它工作正常,直到我昨晚从Ubuntu 15升级到16.04 LTS.现在,我在尝试运行模拟时遇到以下错误:error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory
我搜索了libmpi.so.1,似乎它不见了./ usr/lib/openmpi/lib中有一个文件libmpi.so和libmpi.so.12,但libmpi.so.1没有.我尝试卸载并重新安装软件包openmpi-bin,libopenmpi-dev以及我从网站上下载的OpenMPI.我还在bashrc和profile(在线推荐)中设置变量export LD_LIBRARY_PATH:=$PATH:/usr/lib/openmpi/lib/
这些方法都没有奏效,我仍然得到同样的错误.有关如何修复它以及如何获取文件libmpi.so.1的任何建议?
我正在尝试使用tmpdir_factory类似于教程的PyTest 为模块中的所有测试创建一个具有特定名称(例如“数据”)的临时目录:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
return tmpdir_factory.mktemp("data")
Run Code Online (Sandbox Code Playgroud)
我在模块内的一些测试中成功使用了临时目录。但是,运行测试后该目录仍然存在,当我再次运行它们时,我会失败,因为我无法创建名为“data”的新临时目录。
pytest测试完成后如何自动删除临时目录“data”?该tmpdir参数创建被删除的临时目录,但它没有名称并且只有函数作用域。
是否有可能适当地比较使用运营商的对象>,<并==在Java中?我Comparable在我的一个对象中实现了接口.
它可以节省一些时间并且很好写
if (obj1 < obj2) do sth
Run Code Online (Sandbox Code Playgroud)
代替
if (obj1.compareTo(obj2) < 0) do sth
Run Code Online (Sandbox Code Playgroud)
如果我实现其他东西或通常不能像这样工作,那可能吗?
我是 Ansible 的新手,我正在努力在远程机器上创建一个新用户并将 ssh 密钥(用于 git)从本地机器复制到远程机器的新用户。基本上,从localmachine/somepath/keys/到remotemachine/newuser/home/.ssh/。
到目前为止,我尝试过:
- name: Create user
hosts: remote_host
remote_user: root
tasks:
- name: Create new user
user: name=newuser ssh_key_file=../keys/newuser
Run Code Online (Sandbox Code Playgroud)
虽然这会在远程机器上创建新用户,但它不会复制任何密钥(.ssh 仍然是空的)。我也尝试过authorized_key作为第二个任务,但在尝试复制私钥时只收到一条错误消息。
在我已经运行它并且newuser已经存在之后,甚至有可能仍然添加密钥。即,我可以再次运行它还是必须先删除新用户?
我有一个用于绘图的现有函数,我在程序中重复调用该函数。我想使用matplotlib'sArtistAnimation将每个情节保存为动画的一个步骤中显示的“艺术家”。
我知道如何使用ArtistAnimation动画来显示情节的各个元素,但不知道整个情节。
这是一个简化的示例:
import random
def my_plot():
fig, ax = plt.subplots()
ax.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
ax.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
plt.show()
return ax
ims = []
fig = plt.figure()
for _ in range(5):
ax = my_plot()
ims.append((ax,))
ani = animation.ArtistAnimation(fig, ims, repeat=False)
ani.save('im.mp4', metadata={'artist':'Guido'})
Run Code Online (Sandbox Code Playgroud)
运行时没有错误,但生成的视频只是空白。如果我返回 所创建的艺术家列表,也会发生同样的情况ax.plot()。
我认为问题是我多次调用plt.figure/ 。plt.subfigure但我不知道如何避免这种情况。我是否需要预先创建一个数字并将其传递给 的每次调用my_plot?好像有点丑啊
python ×4
java ×2
animation ×1
ansible ×1
apple-m1 ×1
arraylist ×1
auto-indent ×1
class ×1
comments ×1
comparable ×1
credentials ×1
docker ×1
endpoint ×1
git ×1
github ×1
importerror ×1
indentation ×1
install ×1
installation ×1
macos ×1
matplotlib ×1
nginx ×1
object ×1
openmpi ×1
plot ×1
push ×1
pycharm ×1
pytest ×1
setuptools ×1
ssh-keys ×1
tensorflow ×1
testing ×1